SpringBoot Logging篇
本篇文章主要介绍springboot中的logging设计与使用。文章梳理来源于 feature#logging。
spring-boot
所有的内部使用日志都是用的 commons-logging,但是Spring-Boot 框架对日志系统使用是开放的,默认提供了 common-logging、log4j2、logback 的实现,具体加载逻辑可以参考 浅析 spring-boot log日志加载。
#
配置约定#
日志级别#
全局级别设置springboot 默认使用的日志级别是 INFO
, 通常你可以根据设置 配置文件
或者 启动命令参数
来指定日志级别,这样springboot根据所指定的级别,打印核心组件日志。
- 启动参数
--debug | --trace
- 配置文件
debug=true | trace=true
logger-name
#
指定 也可以使用
logging.level.<logger-name>=<level>
指定包
级别的日志。如:logging.level.root=warnlogging.level.org.springframework.web=debuglogging.level.org.hibernate=error
#
日志颜色如果你的日志输出工具支持 ANSI, springboot允许设置 spring.output.ansi.enabled=ALWAYS
(ansi属性值参考)来支持颜色的输出。
#
日志输出日志默认输出到 console
控制台 , 当然可以根据配置 logging.file.name
或者 logging.file.path
来指定日志输出文件名或者路径,他们都可以使用相对路径或者绝对路径,当两者都配置,优先取 logging.file.name
。 具体可以看以下对比:
logging.file.name | logging.file.path | demo | 说明 |
---|---|---|---|
no | no | 输出控制台 | |
yes | no | application.log | 输出到当前路径下application.log文件中 |
no | yes | /var/log | 输出到 /var/log 路径下 spring.log 文件中 |
日志文件在达到
10mb
(loggin.file.max-size可以修改) 时就会旋转生成新文件。
#
日志滚动日志滚动或者其它更详细配置主要还是看你所引用的第三方日志系统,默认配置项可以看 file-rotation
#
日志分组可以将多个日志包分为成一个组,这样我们可以按组统一配置,比如可以配置日志级别。请参考
#定义demo分组logging.group.demo=org.springframework.boot.SpringApplication,com.example.demo.DemoApplication#统一将demo组日志级别设置为debuglogging.level.demo=debug
spring boot 默认有
web
sql
两个分组。点击 logging.log-groups 查看详情
#
总结本篇文章主要还是介绍 spring boot logging
的配置使用。如果有同学想要了解更多,建议大家可以先看看 spring-boot.jar
中 org.springframework.boot.logging
包下的 java
、 log4j2
、logback
包下相关源码,里面也可以发现相关默认配置和实现。