26.日志
为 Java Util Logging, Log4J2, and Logback提供了默认配置(输出到控制台)。
如果你使用了“Starters”,会使用Logback
作为你的日志系统。
1. 控制台输出⚓
日志级别有五种: ERROR
, WARN
, INFO
, DEBUG
, or TRACE
.
默认输出日志的级别有 ERROR
-level, WARN
-level, and INFO
-level。
可在启动应用时添加选项改变:
$ java -jar myapp.jar --debug
也可以在 application.properties
文件中改变:
<debug/trace>=true
2. 文件输出⚓
使用logging.file
or logging.path
属性
注意:日志系统在应用的生命周期的早期初始化,故不能通过使用@PropertySource
注解找到配置文件中的日志属性。
3. 日志级别⚓
所有支持的日志系统都能在spring的环境中设置日志级别。
logging.level.<logger-name>=<level>
, level
is one of TRACE, DEBUG, INFO, WARN, ERROR, FATAL, or OFF.
root logger
可通过 logging.level.root
配置。例:
logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR
4. 日志组⚓
可将相关的logger组成一个组,对组进行级别设置。
例,定义“tomcat”组,改变其日志级别:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
springboot预置了两个组:
Name | Loggers |
---|---|
web | org.springframework.core.codec , org.springframework.http , org.springframework.web |
sql | org.springframework.jdbc.core , org.hibernate.SQL |
5. 自定义日志配置⚓
通过引入日志系统的jar包可激活多种日志系统。
例,使用log4j2来作为日志系统:1.排除“starter”中的日志;2.导入log4j2的包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--使用log4j2需要将spring-boot-starter-logging排除-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
通过定义 logging.config
属性来指定配置文件。
下表是可识别的文件:
Logging System | Customization |
---|---|
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
变体。