“Springboot-日志配置”的版本间的差异
(→日志格式) |
(→控制台输出) |
||
第13行: | 第13行: | ||
===控制台输出=== | ===控制台输出=== | ||
日志默认输出到控制台,级别为INFO | |||
===文件输出=== | ===文件输出=== | ||
启用文件输出,需要设置 <code>logging.file.name</code> or <code>logging.file.path</code> | |||
<code>logging.file.name</code>: 日志写入特定的文件,可以是绝对路径也可以是相对路径 | |||
<code>logging.file.path</code>:日志写入特定目录的spring.log文件,可以是绝对路径也可以是相对路径 | |||
这两个参数不会同时生效,文件的级别要更高 | |||
logging.file.max-size:文件大小(默认单位为字节,可以使用KB、MB、GB),默认10M,超过之后就会分割并压缩存档 | |||
<code>logging.file.max-history</code>:最大保留天数,默认为7天,超过之后就会删除 | |||
<code>logging.file.total-size-cap</code>:日志存档总大小,超过后历史文件也会别删除 | |||
<code>logging.file.clean-history-on-start</code>: 应用程序启动时强制进行日志存档清理 | |||
===日志级别=== | ===日志级别=== | ||
所有受支持的日志系统都可以在Spring环境中通过<code>ogging.level.<logger-name>=<level></code>设置日志级别,<code>logging.level.root</code>可以设置ROOT级别 | |||
<code>logging.level.root=warn</code> | |||
<code>logging.level.org.springframework.web=debug</code> | |||
<code>logging.level.org.hibernate=error</code> | |||
也可以使用环境变量来设置,例如 <code>LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_WEB=DEBUG</code> | |||
===日志组=== | ===日志组=== | ||
我们经常会用到将相关的记录器分组到一起,以便可以同时配置它们。所以Spring Boot允许在 Spring 中定义日志记录组 | |||
<code>logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat</code> | |||
<code>logging.level.tomcat=TRACE</code> | |||
Spring Boot提供了一下的预定义组: | |||
{| class="wikitable" | |||
!web | |||
!<code>org.springframework.core.codec</code>, <code>org.springframework.http</code>, <code>org.springframework.web</code>, <code>org.springframework.boot.actuate.endpoint.web</code>, <code>org.springframework.boot.web.servlet.ServletContextInitializerBeans</code> | |||
|- | |||
|sql | |||
|<code>org.springframework.jdbc.core</code>, <code>org.hibernate.SQL</code>, <code>org.jooq.tools.LoggerListener</code> | |||
|} | |||
===自定义日志配置=== | ===自定义日志配置=== | ||
可以引入对应的jar包来激活适当的日志系统,也可以添加配置文件来对日志系统进行配置 | |||
根据日志系统,将加载对应的配置文件 | |||
{| class="wikitable" | |||
!Logback | |||
!<code>logback-spring.xml</code>, <code>logback-spring.groovy</code>, <code>logback.xml</code>, or <code>logback.groovy</code> | |||
|- | |||
|Log4j2 | |||
|<code>log4j2-spring.xml</code> or <code>log4j2.xml</code> | |||
|- | |||
|JDK (Java Util Logging) | |||
|<code>logging.properties</code> | |||
|} | |||
建议使用带有 <code>-spring</code>变体的配置文件,如果使用标准的配置文件,Spring可能无法完全控制日志的初始化。也不建议使用JUL(已知的类加载问题) | |||
默认的Logback配置文件在 org/springframework/boot/logging/logback/base.xml | |||
我们也可以直接在配置文件引入默认的配置然后再覆盖默认配置 | |||
===Spring Boot对logback的扩展=== | ===Spring Boot对logback的扩展=== | ||
===Log4J2=== | ===Log4J2=== |
2021年8月27日 (五) 02:46的版本
Spring Boot 日志记录
Spring Boot为所有的内部日志记录使用Commons Logging***?***,但开放底层日志实现,提供了Java Util Logging、Log4J2和Logback的默认配置,每种情况下,日志记录其都被预先配置为使用控制台输出,可选的文件输出也是可用的。如果使用了默认的“Stater”,spring-boot-stater->spring-boot-stater-logging,Logback用于记录日志。
日志格式
Spring Boot 的默认日志(默认情况使用Logback)输出以下项目:
- 日期和时间:毫秒精度,易于排序。
- 日志级别:ERROR、WARN、INFO、DEBUG、TRACE(Logback中没有FATAL级别,它映射到ERROR)
- 进程 ID。
- 用于区分实际日志消息开始的分隔符。---
- 线程名称:用方括号括起来(对于控制台输出,可能会截断)。
- 记录器名称:这通常是源类名称(通常缩写)。
- 日志消息。
可以使用 logging.pattern.console来定义
控制台输出
日志默认输出到控制台,级别为INFO
文件输出
启用文件输出,需要设置 logging.file.name
or logging.file.path
logging.file.name
: 日志写入特定的文件,可以是绝对路径也可以是相对路径
logging.file.path
:日志写入特定目录的spring.log文件,可以是绝对路径也可以是相对路径
这两个参数不会同时生效,文件的级别要更高
logging.file.max-size:文件大小(默认单位为字节,可以使用KB、MB、GB),默认10M,超过之后就会分割并压缩存档
logging.file.max-history
:最大保留天数,默认为7天,超过之后就会删除
logging.file.total-size-cap
:日志存档总大小,超过后历史文件也会别删除
logging.file.clean-history-on-start
: 应用程序启动时强制进行日志存档清理
日志级别
所有受支持的日志系统都可以在Spring环境中通过ogging.level.<logger-name>=<level>
设置日志级别,logging.level.root
可以设置ROOT级别
logging.level.root=warn
logging.level.org.springframework.web=debug
logging.level.org.hibernate=error
也可以使用环境变量来设置,例如 LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_WEB=DEBUG
日志组
我们经常会用到将相关的记录器分组到一起,以便可以同时配置它们。所以Spring Boot允许在 Spring 中定义日志记录组
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
Spring Boot提供了一下的预定义组:
web | org.springframework.core.codec , org.springframework.http , org.springframework.web , org.springframework.boot.actuate.endpoint.web , org.springframework.boot.web.servlet.ServletContextInitializerBeans
|
---|---|
sql | org.springframework.jdbc.core , org.hibernate.SQL , org.jooq.tools.LoggerListener
|
自定义日志配置
可以引入对应的jar包来激活适当的日志系统,也可以添加配置文件来对日志系统进行配置
根据日志系统,将加载对应的配置文件
Logback | logback-spring.xml , logback-spring.groovy , logback.xml , or logback.groovy
|
---|---|
Log4j2 | log4j2-spring.xml or log4j2.xml
|
JDK (Java Util Logging) | logging.properties
|
建议使用带有 -spring
变体的配置文件,如果使用标准的配置文件,Spring可能无法完全控制日志的初始化。也不建议使用JUL(已知的类加载问题)
默认的Logback配置文件在 org/springframework/boot/logging/logback/base.xml
我们也可以直接在配置文件引入默认的配置然后再覆盖默认配置