logback是一种日志框架,我们可以通过配置logback,让日志以指定的形式放在指定的位置。logback配置文件中包括两个属性(contextName 和 property)以及三个节点(appender, root 和logger), 下面分别来介绍。
一,属性
1. contextName属性,定义了日志的名称,如果在一个项目的多个xml文件中都有日志的配置信息,需要保证这些contextName, 也就是日志名称一致,否则会报错。
2. property属性,可以理解成java代码中的成员变量,定义好后,在整个xml文件中都可以引用。例如,定义<property name="maxFileSize" value="40MB"/>, 在其他位置可以通过${maxFileSize}来引用这个变量。
二,节点
1. appender节点,追加节点,用于指定日志的输出形式,有name和class属性,encoder和rollingPolicy子节点。name代表名字,class代表输出策略,可以控制台形式输出,也可以文件形式输出。
1.1 输出到控制台
其中layout为log4j节点,此处省略。
%d 代表时间,可以用%d{yyyy-MM-dd HH:mm:ss}
%c{1}:%L %c日志输出者的类,{1}代表长度,只打印最右边的第一个名称,%L 代表行号
%msg 代表日志的具体信息
%n 代表换行
另外,还有 %thread表示线程名, %-5level 表示日志级别,允许以五个字符长度输出,%yellow()颜 色,%highlight()高亮
1.2 输出到文件
LevelFilter为日志级别过滤器,如果事件等级匹配设置级别,则接受,否则拒绝
介绍一下 滚动策略, 文件名称格式为${tomcatPath}/info/XXX-info.%d{yyyy-MM-dd}.%i.log, %d表示日期,%i表示索引号,当日志文件大于${maxFileSize}的时候,创建新文件,索引从零开始递增,日志最多保存${maxHistory}天。
2. root节点
启用配置,level为info,启用info级别及以上的 error, warn
3. logger节点
对单个包或者类添加配置, 这里级别为DEBUG, 输debug及以上级别的日志