本文共 2645 字,大约阅读时间需要 8 分钟。
文章目录
在Spring Boot中输出日志
Spring Boot日志默认配置
Spring Boot提供了“开箱即用”的日志功能,默认配置如下:
- 默认只输出日志到控制台
- 默认日志级别为INFO
- 默认使用logback日志
日志级别(logging level)
日志级别的严重级别从高到低依次为:
ERROR > WARN > INFO > DEBUG > TRACE
日志输出时会将指定级别级以上的日志都输出,比如指定INFO级别时,ERROR、WARN和INFO级别的日志都会被输出。
使用logback或log4j2日志
Spring Boot早期默认使用log4j日志,后面由于log4j性能问题改为默认使用logback。
而log4j2出现后,由于其性能比logback更好,很多Spring Boot开发者已经改用log4j2,而Spring Boot也支持log4j2。
阿里的Druid数据库连接池就使用了log4j2。
使用logback
由于Spring Boot默认使用了logback日志,因此只需要在resources目录添加logback-spring.xml,并配置日志级别、日志输出路径和文件名、日志备份策略等就可以了。
logback-spring.xml示例:
%black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable ${LOGS}/spring-boot-logger.log %d %p %C{1.} [%t] %m%n ${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log 10MB
上面配置:
- 指定了全局的日志级别为INFO,输出到控制台(Console)和滚动日志文件(RollingFile)
- 其中,指定了滚动日志文件输出到
./logs/spring-boot-logger.log
,每天或者日志文件大小超过10M时,自动备份到./logs/archived/
目录。 - 还说明了可以按包名来设置日志级别
使用log4j2
由于Spring Boot默认使用logback,因此需要先禁用Spring Boot中的logback依赖,再引入log4j2依赖。
pom.xml示例:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-logging org.springframework.boot spring-boot-starter-log4j2
在resources目录下添加log4j2-spring.xml,并配置日志级别、日志输出路径和文件名、日志备份策略等。
log4j2-spring.xml示例:
%d %p %C{1.} [%t] %m%n
上面配置:
- 指定了全局的日志级别为INFO,输出到控制台(Console)和滚动日志文件(RollingFile)
- 其中,指定了滚动日志文件输出到
./logs/spring-boot-logger-log4j2.log
,每天或者日志文件大小超过10M时,自动备份到./logs/yyyyMM/
目录,并压缩归档日志文件为.gz
格式。 - 还说明了可以按包名来设置日志级别
一个完整的log4j2-spring.xml参考:
在代码中输出日志
为了避免更换日志系统(比如将logback更换为log4j2时)改动代码,强烈建议在代码中通过SLF4j来包装日志系统使用。
还可以使用lombok的@Slf4j
注解来简化要在每个类的开头编写获取logger的样板代码。
参见:
参考文档
转载地址:https://cookcode.blog.csdn.net/article/details/104521770 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!