logback.xml Beispiel

logback.xml Example

Hier sind einige Beispiele vonlogback.xml, die in meinen Projekten nur zum Teilen verwendet werden.

P.S Tested with Logback 1.2.3

1. Senden Sie Protokolle an die Konsole

Die gesamte Protokollierung wird zur Konsole umgeleitet.

logback.xml



    
        
            
                %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
            
        
    

    
        
    

    
        
    

2. Senden Sie Protokolle an Datei + Datei drehen

2.1 All logging will be redirected to a file logs/app.log. Darüber hinaus wird diese Protokolldatei täglich archiviert oder wenn die Dateigröße größer als 10 MB ist.

logback.xml



    

    
        ${HOME_LOG}

        
            logs/archived/app.%d{yyyy-MM-dd}.%i.log.gz
            
            10MB
            
            20GB
            
            60
        

        
            %d %p %c{1.} [%t] %m%n
        
    

    
        
    

    
        
    

2.2 Below SizeAndTimeBasedFNATP example is deprecated, it may still work, but it is better to use the above new SizeAndTimeBasedRollingPolicy example.

logback.xml




    

    
        ${DEV_HOME}/debug.log
        
            
                %d{yyyy-MM-dd HH:mm:ss} - %msg%n
            
        

        
            
            ${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
            
                10MB
            
        

    

    
        
    

    
        
    

3. Senden Sie Fehlerprotokolle per E-Mail

logback.xml



    
        
            
                %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
            
        
    

    
        smtp.mailgun.org
        25
        123
        123
        TO_EMAIL
        RO_ANOTHER_EMAIL
        FROM_EMAIL
        TESTING: %logger{20} - %m

        
    

    
        
    

    
        
    

Zum Senden von E-Mails benötigen wir diesejavax.mail

pom.xml

    
        com.sun.mail
        javax.mail
        1.6.2
    

5. Protokolliert asynchron

Dies beschleunigt die Protokollierung.

logback.xml



    
        
    

    
        
    

    
        
    

6. SiftingAppender

Senden Sie Protokolle an eine separate Protokolldatei. Der Name der Protokolldatei wird zur Laufzeit über MDC definiert.

logback.xml



    

    

        
            logFileName
            head0
        

        

            
                ${DEV_HOME}/${logFileName}.log
                
                    
                        %d{yyyy-MM-dd HH:mm:ss} [%thread] %level %logger{35} - %msg%n
                    
                

                
                    ${DEV_HOME}/${logFileName}.%i.log.zip
                    1
                    10
                

                
                    10MB
                

            

        

    

    
        
    

    
        
    

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;

//...
public void run() {

    MDC.put('logFileName', "head1");

    logger.debug("hello");

    MDC.remove('logFileName');

}

Note
Bitte beziehen Sie sich auf diese vollständigenLogback SiftingAppender example

7. Legen Sie den Namen der Protokolldatei programmgesteuert fest

Stellen Sie den Namen der Protokolldatei${log.name} programmgesteuert überSystem.setProperty ein

logback.xml



    

    
        ${USER_HOME}/${log.name}.error
        
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
        
    

    
        ${USER_HOME}/${log.name}.log
        
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n
        
    

    
        
    

    
        
    

TestRunApp.java

package com.example.core;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestRunApp {

    //No static, else log.name.IS_UNDEFINED.log
    private final Logger logger = LoggerFactory.getLogger(TestRunApp.class);

    public static void main(String[] args) {

        //Set this before the logger start.
        System.setProperty("log.name", "abcdefg");

        TestRunApp obj = new TestRunApp();
        obj.start();

    }

    private void start() {

        logger.debug("------ Starting Ant------");
        //...
    }

}

Ausgabe

Debug log file path
/home/example/ant/logs/abcdefg.log

Error log file path
/home/example/ant/logs/abcdefg.error

Note
Bitte beziehen Sie sich auf dieses vollständige BeispielLogback – Set log file name programmatically