Integración de SpringBoot (6) -log

Java tiene muchos componentes de registro, como log4j, log4j2, logback y logging proporcionados por el propio Java. De hecho, SpringBoot proporciona el soporte de componentes correspondiente para estos log4j, log4j2 y logback.


La herramienta de registro utilizada por defecto en Spring Boot es el inicio de sesión, pero antes de mencionar la herramienta de registro específica, se debe mencionar un nombre, este nombre es slf4j (Fachada de registro simple para Java).

slf4j no es una solución de registro específica. Es un poco similar a JDBC. Utiliza el modo fachada. Es una implementación abstracta para varios tipos de registros. Dado que es una implementación de registro abstracto, no necesita importarse en Spring Boot.


Nota: La dependencia de spring-boot-starter-logging se proporciona en spring-boot-starter. En spring-boot-starter-logging, puede ver e integrar el soporte predeterminado de slf4j y la implementación específica de logback, de la siguiente manera:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí


Dado que SpringBoot admite el inicio de sesión predeterminado, ¿cómo lo usamos? De hecho, utilizamos su registro en el código es muy muy simple, de la siguiente manera:
Inserte la descripción de la imagen aquí


De forma predeterminada, SpringBoot está configurado con el nivel de registro INFO, es decir, se generarán registros por encima del nivel de información (INFO, WARN, ERROR). Es decir, por defecto logging.level.root=INFO, root representa todo el proyecto.


Por supuesto, también podemos ajustar su nivel de registro en el archivo .properties o en el archivo .yml, o se puede establecer en un paquete determinado, o puede ser específico para un nombre de clase, de la siguiente manera:

logging.level.root = INFO
logging.level.com.kimi.controller = DEPURACIÓN

  raíz del
 nivel de registro
: INFO
  com.kimi.controller = DEBUG



Además, en circunstancias normales, los registros de SpringBoot solo se enviarán a la consola y no se escribirán en el archivo de registro. Sin embargo, en algunas aplicaciones de entornos formales, debemos configurar el archivo logging.file en el archivo .properites o el archivo .yml. Nombre y ruta del archivo logging.path, envíe el registro al archivo de registro.


Si solo se configura logging.path, se genera un archivo de registro como spring.log en la carpeta / var / tmp.
Si solo se configura logging.file, se generará un archivo de registro xxx.log en la ruta actual del proyecto.


Nota: Si tanto logging.path como logging.file están configurados, solo logging.file tendrá efecto, por lo que si desea especificar la ubicación específica de la generación de registros, use la configuración logging.file

loggin.file = D: \ log \\ test.log




Además, si no queremos usar logback, también podemos usar log4j, log4j2, etc. Si queremos usar otros registros, primero debemos eliminar el logback que SpringBoot admite de manera predeterminada, y luego introducir los registros que queremos usar, como log4j2
Inserte la descripción de la imagen aquí




Entonces, su método de uso es consistente con la introducción anterior. Además, generalmente no recomendamos el uso de log4j integrado, porque SpringBoot no proporciona soporte para log4j, por lo que todavía es muy problemático usarlo para configurarlo, ya que admitimos SpringBoot de manera predeterminada Se eliminó el inicio de sesión. Después de la introducción del soporte log4j, debe configurar los ajustes relacionados
Inserte la descripción de la imagen aquí

Agregue el archivo log4j.properties en classpath

# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

# root日志输出
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.file=logs/all.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

# error日志输出
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorfile.file=logs/error.log
log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd
log4j.appender.errorfile.Threshold = ERROR
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

Hay tres partes principales de log4j en la configuración: registradores (registradores), salidas (anexores) y formateadores de registros (diseño).

  • Registrador: controla qué declaraciones de registro habilitar o deshabilitar, y limita el nivel de información de registro.
  • Anexos: especifique si se imprime el registro en la consola o en un archivo.
  • Diseño: controla el formato de visualización de la información de registro.

Varios destinos de salida comúnmente utilizados por Log4j:

  • org.apache.log4j.ConsoleAppender: los registros de salida a la consola
  • org.apache.log4j.FileAppender: registro de salida al archivo
  • org.apache.log4j.DailyRollingFileAppender: envía información de registro a un archivo de registro y envía a un nuevo archivo de registro todos los días.
  • org.apache.log4j.RollingFileAppender: envíe el registro a un archivo de registro y especifique el tamaño del archivo. Cuando el tamaño del archivo alcance el tamaño especificado, el archivo cambiará de nombre automáticamente y se generará un nuevo archivo al mismo tiempo.
  • org.apache.log4j.WriterAppender: envía la información de registro en un formato de transmisión a cualquier lugar especificado.
  • org.apache.log4j.jdbc.JDBCAppender: envía información de registro a la base de datos a través de JDBC.

Diseño del formateador de registro:

  • org.apache.log4j.HTMLLayout: la salida del registro con formato está en formato HTML.
  • org.apache.log4j.SimpleLayout: formatee la salida del registro de una manera muy simple.
  • org.apache.log4j.PatternLayout: formatee la salida del registro de acuerdo con el modo de conversión especificado, o si no se especifica ningún modo de conversión, se utiliza el modo de conversión predeterminado.
  • org.apache.log4j.TTCCLayout: contiene información como el tiempo de generación del registro, el hilo, la categoría, etc.

Los parámetros comunes de impresión son los siguientes:

  • % m: muestra el mensaje especificado en el código
  • % p: la prioridad de salida es DEBUG, INFO, WARN, ERROR, FATAL
  • % r: genera la cantidad de milisegundos que se gastan desde el inicio de la aplicación hasta la salida de la información de registro.
  • % c: la categoría a la que pertenece la salida, generalmente el nombre completo de la categoría.
  • % t: muestra el nombre del hilo que generó el evento de registro
  • % n: genera un retorno de carro y un carácter de avance de línea, "/ r / n" para la plataforma de Windows y "/ n" para la plataforma Unix
  • % d: muestra la fecha o la hora del punto de registro, el formato predeterminado es ISO8601, también puede especificar el formato después, por ejemplo:% d {aaaa MM dd HH: mm: ss, SSS}, la salida es similar: 13 de agosto de 2018 Domingo 14: 25: 28,123
286 artículos originales publicados · Me gusta12 · Visitantes 10,000+

Supongo que te gusta

Origin blog.csdn.net/newbie0107/article/details/105399048
Recomendado
Clasificación