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变体。