La diferencia entre Day21 logj4 y sl4j

En el pasado, todos los resultados de escribir código para verificar se ejecutaban usando System.out.print (), pero esto consume recursos.
Puede comprobar los resultados imprimiendo el registro

Introducción a log4j

  • (1) ¿Qué es log4j?
    Log4j es un proyecto de código abierto de Apache. Al usar Log4j, podemos controlar el destino de la entrega de información de registro a la consola, archivos, etc.
  • (2) ¿Cuáles son las características?
    》 Puede controlar el formato de salida de cada registro.
    》 Controlar el proceso de generación de registros
    . Configuración flexible a través de un archivo de configuración log4j.propertiessin necesidad de modificar el código de la aplicación

Cómo usar log4j

  • (1) Dependencia
     <!--日志包-->
	<dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
  • (2) Archivo de configuración log4j.properties
# 日记级别- (单个级别) 文件/控制台
log4j.rootLogger=debug, stdout,file
# Log4j建议只使用四个级别,从高到低有ERROR>WARN> INFO>DEBUG
# 如果定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来

# 指定输出格式
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# 指定输出到哪个文件
# Rirect log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=test.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
  • (3) Llamar
private static final  Logger logger = Logger.getLogger(当前类.class); 
logger.debug- (重要数据);
logger.info- (重要数据);
logger.warn- (重要数据);
logger.error- (重要数据);
  • (4) Prioridad de la información del registro

Log4j recomienda usar solo cuatro niveles, de mayor a menor. ERROR>WARN>INFO>DEBUG
Si se define el nivel INFO, no se imprimirá toda la información del registro del nivel DEBUG en la aplicación
简单一句话,就是控制是否打印的总开关

  • (5) Ejemplo
import org.apache.log4j.Logger;

//使用log4j
public class Test02 {
    
    
    //生成日志器对象
    private static final Logger logger = Logger.getLogger(Test02.class);

    public static void main(String[] args) {
    
    
        String username = "jack";
        //以下是否执行需要查看log4j配置
        logger.error("错误");
        logger.warn("警告");
        logger.info("信息");
        logger.debug(username);
    }
}

La diferencia entre log4j y slf4j

  • (1) ¿Qué es log4j
    log4j: log para java? El nombre en inglés cuatro de Java log 4 es el mismo que para
  • (2) ¿Qué es slf4j
    slf4j: fachada de registro simple para java: fachada de registro simple?
  • (3) ¿Cuál es la diferencia?
    Log4j es un producto que realmente realiza la función de registro y hay muchos productos similares.
    slf4j es un adaptador Cuando nuestro sistema cambia una fuente de registro, no hay necesidad de cambiar el código.

Principio de simulación de Sl4j

假设日志系统A的info日志输出方法如下
A.message();
日志系统B的info日志输出方法如下
B.show();
log4j的info日志输出方法如下:
logger.getInfo()     //演示用  实际不是这个方法

slf4j的实现就是:
slf4j slf4j = new slf4j (A);
log.info();
这样我们用的就是日志系统A的方法,

现在假设我们的系统所在环境仅仅有log4j的日志输出环境,那么原来系统仅仅需要配置新的日志源即可
slf4j slf4j = new slf4j (log4j);

而不需要更改其他代码

confiar

 <!--日志包-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

Ejemplo

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

//使用slf4j
public class Test03 {
    
    
    //生成日志器对象
    private static final Logger logger = LoggerFactory.getLogger(Test03.class);

    public static void main(String[] args) {
    
    
        String username = "jack";
        //以下是否执行需要查看log4j配置
        logger.error("错误");
        logger.warn("警告");
        logger.info("信息");
        logger.debug(username);
    }
}

En breve

slf4j-api proporciona interfaces y slf4j-log4j proporciona implementaciones específicas. Es decir, slf4j es solo un estándar de registro, no una implementación específica del sistema de registro. Si el proyecto solo tiene el paquete slf4j, no hay forma de lograr la función de registro.

Supongo que te gusta

Origin blog.csdn.net/qq_43639081/article/details/109109623
Recomendado
Clasificación