logback.xml Пример

logback.xml Example

Вот несколько примеровlogback.xml, которые используются в моих проектах просто для того, чтобы поделиться.

P.S Tested with Logback 1.2.3

1. Отправить журналы в консоль

Все журналы будут перенаправлены на консоль.

logback.xml



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

    
        
    

    
        
    

2. Отправить журналы в файл + повернуть файл

2.1 All logging will be redirected to a file logs/app.log. Кроме того, этот файл журнала будет архивироваться ежедневно или если размер файла превышает 10 МБ.

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. Отправить журналы ошибок на электронную почту

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

        
    

    
        
    

    
        
    

Для отправки электронной почты нам понадобится этотjavax.mail

pom.xml

    
        com.sun.mail
        javax.mail
        1.6.2
    

5. Регистрирует асинхронно

Это ускоряет регистрацию.

logback.xml



    
        
    

    
        
    

    
        
    

6. Просеивание

Отправлять журналы в отдельный файл журнала, имя файла журнала определяется во время выполнения через 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
См. этот полныйLogback SiftingAppender example

7. Программно установить имя файла журнала

Задайте имя файла журнала${log.name} программно, черезSystem.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------");
        //...
    }

}

Выход

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

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

Note
См. этот полный примерLogback – Set log file name programmatically