Postura de salida de registro predeterminada de la aplicación SpringBoot

¡Continúe creando, acelere el crecimiento! Este es el 5to día de mi participación en el "Nuggets Daily New Plan · October Update Challenge", haz clic para ver los detalles del evento

Visión general

Una de las características más importantes de las aplicaciones SpringBoot es la desconfiguración, y el sistema de registro no es una excepción. De forma predeterminada, no realiza ninguna configuración. Siempre que introduzca las dependencias pertinentes, puede ver la salida del registro en la consola. Por supuesto, también puede simplemente configurar el archivo de configuración para cambiar el comportamiento de la salida del registro. Este artículo explica principalmente la configuración de la salida de registro predeterminada y cómo usarla a través de la versión SpringBoot 2.7.0.

Fácil de usar

  1. Importar dependencias relacionadas

Las siguientes dependencias se introducen en el proyecto del proyecto:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-logging</artifactId>
  <version>2.7.0</version>
</dependency>
复制代码

Las referencias web generales importarán automáticamente esta dependencia y no es necesario importarlas manualmente.

  1. agregar registro
@SpringBootApplication
@Slf4j
public class LogApplication
{
    public static void main( String[] args )
    {
        SpringApplication.run(LogApplication.class, args);

        log.trace("Trace 日志...");
        log.debug("Debug 日志...");
        log.info("Info 日志...");
        log.warn("Warn 日志...");
        log.error("Error 日志...");
    }
}
复制代码

Agregue un registro de verificación a la clase de inicio para obtener el resultado:

  1. resumen
  • De forma predeterminada, no se realiza ninguna configuración y el registro solo se envía a la consola.
  • El nivel de registro de menor a mayor es seguimiento < depuración < información < advertencia < error < fatal. Dado que el nivel de registro predeterminado se establece en INFO, los registros de seguimiento y depuración en el ejemplo anterior no se pueden ver.

Podemos cambiar este comportamiento predeterminado a través de algunos elementos de configuración.

Configuración relacionada con el registro

  1. Modificar el nivel de registro logging.level

Solo necesita pasar logging.level 包名el controlar con precisión el nivel de salida de cada registro de paquete diferente, o puede logging.level.rootmodificar el nivel de registro globalmente. Se pueden configurar los siguientes 6 niveles de registro: seguimiento < depuración < información < advertencia < error < fatal.

resultado:

  1. grupo de registro logging.group

Si hay muchos paquetes en el registro, será problemático establecer el nivel para cada paquete de la misma categoría.Afortunadamente, el sistema de registro tiene una función de agrupación de registros. Por ejemplo, según el módulo, los paquetes de nuestros módulos de usuario se agrupan en un grupo y luego los registros de este grupo se modifican uniformemente.

// 设置分组
logging.group.user=com.alvinlkk.user,com.alvinlkk.person
// 对分组修改日志级别
logging.level.user=debug
复制代码

SpringBoot tiene dos agrupaciones web y sql integradas para nosotros, de la siguiente manera:

  1. Registrar la salida en el archivo logging.file.name

Si desea enviar el registro a un archivo, puede especificar el nombre del archivo de registro configurando de la siguiente manera:

logging.file.name=logdemo.log
复制代码

logging.file.name 可以只指定日志文件名,也可以指定日志文件全路径,例如下面这样:

logging.file.name=/Users/alvin/Documents/javaboy/logdemo.log
复制代码

运行结果:

  1. 日志输出到目录中logging.file.path

如果你只是想重新定义输出日志文件的路径,也可以使用 logging.file.path 属性, 生成的文件名为spring.log, 如果同时配置了logging.file.path和logging.file.name,logging.file.path配置会失效。

logging.file.path=/Users/alvin/CodeRepo/Person/springboot-demo/springboot-03-log
复制代码

  1. 修改日志输出格式

logging.pattern.console修改控制台的日志输出格式。

logging.pattern.file修改文件中的日志输出格式。

# 修改在控制台输出的日志格式
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger : %msg%n
# 修改输出到文件的日志格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger : %msg%n
复制代码

符号说明:

%d{HH:mm:ss.SSS}:日志输出时间

%-5level:日志级别,并且使用 5 个字符靠左对齐

%thread:输出日志的进程名字,这在 Web 应用以及异步任务处理中很有用

%logger:日志输出者的名字

%msg:日志消息

%n:平台的换行符

  1. 归档相关的日志
归档配置 说明 默认值
logging.logback.rollingpolicy.clean-history-on-start 是否在启动时清理归档日志文件。 false
logging.logback.rollingpolicy.file-name-pattern 归档日志文件名的模式。 ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
logging.logback.rollingpolicy.max-file-size 单个文件最大日志文件大小 10MB
logging.logback.rollingpolicy.max-history 要保存的存档日志文件的最大数量 7
logging.logback.rollingpolicy.total-size-cap 日志文件被删除之前,可以容纳的最大大小 0B

actuator查看日志

配置了logging.file.name后,日志内容也可以通过actuator的端点查看。

  1. 引入actuator相关的jar
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
复制代码
  1. 配置暴露所有的断点
management.endpoints.web.exposure.include=*
复制代码
  1. 查看日志内容

El navegador puede ingresar la dirección http://localhost:8080/actuator/logfile para ver el contenido del registro, como se muestra a continuación:

Resumir

Aunque la implementación del registro predeterminado es muy conveniente, tiene algunas limitaciones. Solo puede implementar una configuración muy simple del registro. Si desea implementar una configuración de registro más detallada, debe usar la configuración nativa de la implementación del registro. , como classpath de Logback. :logback.xml, classpath de Log4j:log4j.xml, etc.

Referirse a

www.hangge.com/blog/cache/…

www.cnblogs.com/lenve/p/141…

www.cnblogs.com/bigdataZJ/p...

blog.csdn.net/CSDN2497242…

\

Supongo que te gusta

Origin juejin.im/post/7150073533110943775
Recomendado
Clasificación