logback.xml Exemple

logback.xml Example

Voici quelques exemples delogback.xml qui sont utilisés dans mes projets, juste pour le partage.

P.S Tested with Logback 1.2.3

1. Envoyer les journaux à la console

Tous les journaux seront redirigés vers la console.

logback.xml



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

    
        
    

    
        
    

2. Envoyer les journaux au fichier + faire pivoter le fichier

2.1 All logging will be redirected to a file logs/app.log. De plus, ce fichier journal sera archivé quotidiennement ou lorsque la taille du fichier est supérieure à 10 Mo.

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. Envoyer les journaux d'erreurs par 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

        
    

    
        
    

    
        
    

Pour envoyer un e-mail, nous avons besoin de cejavax.mail

pom.xml

    
        com.sun.mail
        javax.mail
        1.6.2
    

5. Journaux asynchrones

Cela rend la journalisation plus rapide.

logback.xml



    
        
    

    
        
    

    
        
    

6. Tamisage

Envoyez les journaux dans un fichier journal séparé, le nom du fichier journal est défini au moment de l'exécution, via MDC.

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
Veuillez vous référer à ceLogback SiftingAppender example complet

7. Définir le nom du fichier journal par programme

Définissez le nom du fichier journal${log.name} par programme, viaSystem.setProperty

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------");
        //...
    }

}

Sortie

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

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

Note
Veuillez vous référer à cet exemple completLogback – Set log file name programmatically