spring boot之日志

参考Part IV. Spring Boot features-logging



日志

Spring Boot使用Commons Logging进行所有内部日志记录,但保留底层日志实现。 为Java Util LoggingLog4J2Logback提供默认配置。 在每种情况下,记录器(loggers)都预先配置为使用控制台输出,同时还提供可选的文件输出
默认情况下,如果使用“Starters”,则使用Logback进行日志记录, 同时还包括适当的Logback路由,以确保使用Java Util Logging,Commons Logging,Log4J或SLF4J的依赖库都能正常工作。
Java有很多日志框架可供使用。 如果以上列表看起来令人困惑,请不要担心。 通常,您不需要更改日志记录依赖项,并且Spring Boot在默认情况下可以正常工作。



日志格式

2014-03-05 10:57:51.112  INFO 45469 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.52
2014-03-05 10:57:51.253  INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2014-03-05 10:57:51.253  INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1358 ms
2014-03-05 10:57:51.698  INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
2014-03-05 10:57:51.702  INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]

输出以下项目:

  • 日期和时间:精确到毫秒,易于分类。
  • 日志等级:包括ERROR, WARN, INFO, DEBUG, or TRACE.
  • 进程号
  • ---:分隔符,用于区分实际日志消息的开始。
  • 线程名:括在方括号中(为了控制台输出,可能被截断一部分)
  • 记录名称:这通常是源类名(通常缩写)。
  • 日志消息


文件输出

默认情况下,Spring Boot仅输出日志到控制台,不会写入日志文件。如果除了控制台输出之外还要输出日志文件,则需要设置logging.filelogging.path属性(例如,在application.properties中)。

日志文件在达到10 MB时会轮换,并且与控制台输出一样,默认情况下会记录ERROR,WARN,INFO级别的消息。可以使用logging.file.max-size属性更改日志文件大小限制。除非已设置logging.file.max-history属性,否则以前轮换的文件将无限期归档。


自定义日志配置

根据您的日志系统,将加载以下文件:

日志系统定制
Logbacklogback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j2log4j2-spring.xml, log4j2.xml
JDK (Java Util Logging)logging.properties

如果可能,我们建议您使用-spring变体进行日志记录配置(例如,logback-spring.xml而不是logback.xml)。如果使用标准配置定位,Spring无法完全控制日志初始化。

为了帮助自定义,下表给出一些属性的描述。这些属性从Spring Environment(spring配置文件中的属性)传输到System属性(日志xml配置文件中的属性)

Spring EnvironmentSystem Property描述
logging.exception-conversion-wordLOG_EXCEPTION_CONVERSION_WORD记录异常时使用的转换字。
logging.fileLOG_FILE如果已定义,则在默认日志配置中使用它。
logging.file.max-sizeLOG_FILE_MAX_SIZE如果启用了LOG_FILE,表示最大日志文件大小。(仅支持默认的Logback设置。)
logging.file.max-historyLOG_FILE_MAX_HISTORY如果启用了LOG_FILE,表示要保留的最大归档日志文件数。(仅支持默认的Logback设置。)
logging.pathLOG_PATH如果已定义,则在默认日志配置中使用它。
logging.pattern.consoleCONSOLE_LOG_PATTERN要在控制台上使用的日志模式(stdout)。(仅支持默认的Logback设置。)
logging.pattern.dateformatLOG_DATEFORMAT_PATTERN日志日期格式的Appender模式。 (仅支持默认的Logback设置。)
logging.pattern.fileFILE_LOG_PATTERN如果启用了LOG_FILE,表示在文件中使用的日志模式。 (仅支持默认的Logback设置。)
logging.pattern.levelLOG_LEVEL_PATTERN呈现日志级别时使用的格式(默认值为%5p)。 (仅支持默认的Logback设置。)
PIDPID当前进程ID

所有支持的日志系统在解析配置文件时都可以查阅以上的系统属性。请参阅spring-boot.jar中的默认配置,有关示例如下:
Logback
Log4j 2
Java Util logging


Logback扩展

Spring Boot包含许多Logback扩展,可以帮助进行高级配置。您可以在logback-spring.xml配置文件中使用这些扩展。
由于标准logback.xml配置文件加载过早,因此无法在其中使用扩展。您需要使用logback-spring.xml或定义logging.config属性。
扩展不能与Logback的配置扫描一起使用。如果您尝试这样做,更改配置文件会导致类似于以下记录之一的错误:

ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProperty], current ElementPath is [[configuration][springProperty]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 - no applicable action for [springProfile], current ElementPath is [[configuration][springProfile]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值