Logback
Logback由三大模块组成:logback-core、logback- classic和logback-access。
Logback-core是其它两个模块的基础模块。
Logback-classic是log4j的一个改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。
Logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。
Logback 组成
<configuration>下有Appender、logger、root三个子节点
appender:可以有多个,定义日志的输出格式,输出目的地,滚动方式,日志编码方式。过滤日志。
logger:可以有多个,定义输出等级,日志名称,是否向root传递,可控制相应类和包的日志输出
root:只可有一个,定义日志等级,同时可接受logger中传递过来的日志
1)Appender
Appender包含:Fille,Filter,Encodeer, RollingPolicy, TriggeringPolicy等子节点
Appender常用配置选项
选项 | 描述 |
file | 被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值 |
filter | 指定内容过滤规则 |
append | 是否追加 默认值true |
encoder | 对记录事件进行格式化 |
rollingPolicy | 发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名 |
triggeringPolicy | 文件滚动条件 |
prudent | 如果是 true,日志会被安全的写入文件,即使其他的FileAppender也在向此文件做写入操作,效率低,默认是 false。 |
target | 控制台输出方式 |
Filter 过滤器
Logback-classic提供两种类型的过滤器:Filter过滤器和TuroboFilter过滤器。
过滤器被添加到<Appender> 中,为<Appender> 添加一个或多个过滤器后,可以用任意条件对日志进行过滤。<Appender> 有多个过滤器时,按照配置顺序执行。
常用过滤器
过滤器名 | 描述 |
LevelFilter | 根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志 |
ThresholdFilter | 临界值过滤器,过滤掉低于指定临界值的日志。当日志级别等于或高于临界值时,过滤器返回NEUTRAL;当日志级别低于临界值时,日志会被拒绝 |
EvaluatorFilter | 求值过滤器,评估、鉴别日志是否符合指定条件。有一下子节点。 |
|
|
RollingPolicy
TimeBasedRollingPolicy | fileNamePattern | 根据时间来制定滚动策略,既负责滚动也负责出发滚动。 | |||
maxHistory | |||||
FixedWindowRollingPolicy | minIndex | 根据固定窗口算法重命名文件的滚动策略 | |||
maxIndex | |||||
fileNamePattern | |||||
SizeBasedTriggeringPolicy | maxFileSize | 查看当前活动文件的大小来滚动 | |||
TimeBasedFileNamingAndTriggeringPolicy | maxFileSize | 时间来滚动滚动的基础上按大小滚动 |