LogBack的配置大概包括3部分,Appender,Logger,Root的配置。
Appender: 负责写日志的组件, 两个必要属性name和class。name指定appender名称,class指定appender的实现方式;不同的实现方式可配置不同的子节点;通用的有: encoder(格式化方式)
以按天日志为例:
class=ch.qos.logback.core.rolling.RollingFileAppender
可配置的子节点有:
file:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。
append:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。
encoder:格式化方式。
rollingPolicy:当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名。TimeBasedRollingPolicy:最常用的滚动策略,它根据时间来制定滚动策略,有子节点:
fileNamePattern: 包含文件名及“%d”转换符,“%d”可以包含一个java.text.SimpleDateFormat指定的时间格式,如:.%d{yyyy-MM-dd}.%i.log。RollingFileAppender的file字节点可有可无,通过设置file,可以为活动文件和归档文件指定不同位置,当前日志总是记录到file指定的文件(活动文件),活动文件的名字不会改变;如果没设置file,活动文件的名字会根据fileNamePattern的值,每隔一段时间改变一次。“/”或者“\”会被当做目录分隔符。
maxHistory:控制保留的文件的最大数量,超出数量就删除旧文件
triggeringPolicy:告知RollingFileAppender合适激活滚动。
prudent:当为true时,不支持FixedWindowRollingPolicy。支持TimeBasedRollingPolicy,但是有两个限制,1不支持也不允许文件压缩,2不能设置file属性,必须留空。
e.g:
Logger:设置某一个包或者具体的某一个类的日志打印级别、以及指定appender
属性信息:
name: 用来指定受此loger约束的某一个包或者具体的某一个类。
level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特俗值INHERITED或者同义词NULL,代表强制执行上级的级别。
addtivity: 是否向上级loger传递打印信息。默认是true。
子节点:
appender-ref : 可以包含零个或多个元素,标识这个appender将会添加到这个loger。
e.g:
Root: 根loger。只有一个level属性
level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。
默认是DEBUG。
e.g:
全局配置文件:
a. 配置文件的属性
scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。支持的时间单位: milliseconds, seconds, minutes or hours
debug: 当此属性设置为true时,将打印出logback内部日志信息。默认值为false。
e.g:
b. 设置上下文名称
每个logger都关联到logger上下文,默认上下文名称为“default”。使用设置成其他名字,用于区分不同应用程序的记录。
e.g:
c. 设置变量
通过定义的值会被插 入到logger上下文中。定义变量后,可以使“${}”来使用变量
e.g:
配置文件样例:
参考连接:http://logback.qos.ch/manual/configuration.html
http://blog.csdn.net/haidage/article/details/6794509/