Рубрики
Без рубрики

Учебник по обратному входу SLF4J

– Учебник по логбэку SLF4J

Автор оригинала: mkyong.

Простой SLF4J с Обратный вход пример.

Протестировано с

  • API SLF4J 1.7.25
  • Обратный вход 1.2.3
  • Мавен 3
  • Java 8

1. Каталог проектов

2. Знаток

2.1 Объявляет logback-классический , он будет тянуть в logback-ядро и slf4j-api-интерфейс

	
		ch.qos.logback
		logback-classic
		1.2.3
	
com.mkyong:slf4j-logback:jar:1.0
[INFO] +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] |  +- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.25:compile

2.2 Завершено pom.xml пример.



    4.0.0

    com.mkyong
    slf4j-logback
    1.0

    
        UTF-8
        1.8
        1.2.3
		1.6.2
    

    

        
        
            ch.qos.logback
            logback-classic
            ${logback.version}
        

        
		
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.0
                
                    ${java.version}
                    ${java.version}
                
            

            
            
                org.apache.maven.plugins
                maven-shade-plugin
                3.2.0
                
                    
                    
                        package
                        
                            shade
                        
                        
                            
                                
                                    com.mkyong.HelloWorld
                                
                            
                        
                    
                
            

        
    


3. 2.2 Завершено || pom.xml || пример.

3.1 Создайте logback.xml в пути к классу проекта.




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

    
        
    

    
        
    


4. Привет, Обратный вход

package com.mkyong;

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

public class HelloWorld {

    private static final Logger logger = LoggerFactory.getLogger(HelloWorld.class);

    public static void main(String[] args) {

        logger.debug("Hello from Logback");

        logger.debug("getNumber() : {}", getNumber());

    }

    static int getNumber() {
        return 5;
    }

}

Выход

11:28:18.350 [main] DEBUG com.mkyong.HelloWorld - Hello from Logback
11:28:18.352 [main] DEBUG com.mkyong.HelloWorld - getNumber() : 5

5. Конфигурация обратного входа

5.1 Для разработки рекомендуется включить режим отладки. Он отобразит много полезной информации, а также сообщение об ошибке, если таковое имеется.


    

Прочтите это Конфигурация обратного входа

6. Приложения для обратной регистрации

Некоторые из распространенных приложений для обратной регистрации.

6.1 Приложение для консоли



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

    
        
    

    
        
    


6.2 Приложение для файлов



    

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

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

    
        
        
    

    
        
    


2019-03-29 11:42:44,827 DEBUG com.mkyong.HelloWorld [main] Hello from Logback
2019-03-29 11:42:44,836 DEBUG com.mkyong.HelloWorld [main] getNumber() : 5

6.3 RollingFileAppender – Поворот файла журнала по дате и размеру. Скорее всего, это то, что вам нужно в производстве.



    

    
        ${HOME_LOG}

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

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

    
        
    

    
        
    


Добавьте расширение .gz , Logback будет сжимать архивированные файлы.

	
		logs/archived/app.%d{yyyy-MM-dd}.%i.log.gz
	

6.4 смтпапендер – Нужно javax.mail отправить электронное письмо.

	
		com.sun.mail
		javax.mail
		1.6.2
	


    
        
            
                %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

        

		
        
			
            1
        

		
        false

    

    
        
    

    
        
    


Имитация ошибки

package com.mkyong;

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

public class HelloWorldError {

    private static final Logger logger = LoggerFactory.getLogger(HelloWorldError.class);

    public static void main(String[] args) {

        try {
            System.out.println(getData());
        } catch (IllegalArgumentException e) {
            logger.error("{}", e);
        }

    }

    static int getData() throws IllegalArgumentException {
        throw new IllegalArgumentException("Sorry IllegalArgumentException!");
    }

}

Вот электронное письмо

6.5 AsyncAppender – Регистрирует асинхронно, быстрее, но удаляет события ТРАССИРОВКИ уровня, ОТЛАДКИ и ИНФОРМАЦИИ, если его очередь заполнена на 80%, сохраняя только события ПРЕДУПРЕЖДЕНИЯ уровня и ОШИБКИ. Прочтите это АсинкАппендер



    

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

    
        ${HOME_LOG}

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

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

    
    
    
        
        
        512
    

    
        
        
    

    
        
    


Скачать Исходный Код

Рекомендации

Оригинал: “https://mkyong.com/logging/slf4j-logback-tutorial/”