一 前言
知识追寻者springboot系列之logback,觉得文章不错,点赞加关注谢谢;关注公众号知识追寻者获取更多精彩原创内容;
logback是一个成熟的log4j 工程,由 Ceki Gülcü 所创造,也是 log4j 日志框架的创建者;
springboot默认使用的日志框架是
logback,其由三个组件组成
- logback-core
- logback-classic
- logback-access
logback-spring.xml 文件放在classpath (resource目录)下 即可自动加载
二logback 基本属性
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
日志格式说明
- %d 表示日期时间
- %thread表示线程名
- %-5level:级别从左显示5个字符宽度
- Logger :通常使用源代码的类名
- %msg:日志消息
- %n是换行符
有效的日志级别如下
level of request p | ||||||
---|---|---|---|---|---|---|
TRACE | DEBUG | INFO | WARN | ERROR | OFF | |
TRACE | YES | NO | NO | NO | NO | NO |
DEBUG | YES | YES | NO | NO | NO | NO |
INFO | YES | YES | YES | NO | NO | NO |
WARN | YES | YES | YES | YES | NO | NO |
ERROR | YES | YES | YES | YES | YES | NO |
2.1 configuration 标签属性
- scan : 配置文件如果发生改变,将会被重新加载,默认值为true
...
- debug: 实时查看logback运行状态,默认值为false
...
- scanPeriod: 监测配置文件是否有修改的时间间隔, 默认 每分钟;读者可以设置 示例
30 seconds
,30 minutes
,3 hours
...
- packagingData : 堆栈跟踪中是否启用打包数据,默认false;
...
2.2 statusListener 标签
statusListener
为configuration 的子元素。称为状态监听器,在 configuration 的子标签顶层,意指监听事件;
... the rest of the configuration file
2.3 property标签
属性 name , value 用来定义变量的 名称 和值 ,在上下文中可以通过 ${name} 的方式进行调用
${USER_HOME}/myApp.log
%msg%n
如果 定义如下示例会去 variables1.properties 中读取配置信息
${USER_HOME}/myApp.log
%msg%n
variables1.properties:
USER_HOME=/home/sebastien
2.4appender标签
appender
为configuration 的子元素,每个 appender
都是一个日志组件, 可以定义一种类型的日志;
name
:appender 的名称,该值主要用于ref
。class
:定义appender 组件。scope
:指定作用域 ;LOCAL
,CONTEXT
,SYSTEM
如下示例 : 定义2 个组件, 一个是文件存储,一个控制输出,通过 root 标签引用即可同时生效;
myApp.log
%date %level [%thread] %logger{10} [%file:%line] %msg%n
%msg%n
2.5contextName标签
contextName
configuration 的子元素。每一个logger 都可以绑定一个contextName
,默认上下文名称为 default , 如果设定完成,则不能改变;
myAppName
%d %contextName [%t] %level %logger{36} - %msg%n
2.6 logger标签
用来设置某个包或及具体的某个类的日志输出以及指定
; name 属性一个, level,addtivity(是否向上级loger传递打印信息) 属性可选
如下所示,不想看见包chapters.configuration 中的debug级别日志,可以进行如下配置
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
打印如下
17:34:07.578 [main] INFO chapters.configuration.MyApp3 - Entering application.
17:34:07.578 [main] INFO chapters.configuration.MyApp3 - Exiting application.
2.7 root 标签
root标签实质是
标签,不过其是根标签;若
或
标签为设置输出级别时就会默认继承该标签设置的级别!
2.8 include标签
包含其它文件的配置信息
includedConfig.xml 示例,必须包含
标签
"%d - %m%n"
如过是URL
三 多环境配置
为了支持 development, testing 和 production 多环境下logback 不冲突的问题,可以使用
, then
进行配置,使目标环境生效;
格式如下
...
...
...
四 示例
4.1正常日志appender示例
true
${logging.path}/zszxz-spring-boot/zszxz-error.log
${logging.path}/zszxz-boot/zszxz.log.%d{yyyy-MM-dd}
30
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
4.2错误日志appender示例
true
error
${logging.path}/zszxz-spring-boot/zszxz-error.log
${logging.path}/zszxz-boot/zszxz-error.log.%d{yyyy-MM-dd}
30
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
五 参考文档
更多的日志配置内容请参照官方文档
http://logback.qos.ch/manual/index.html