Logback 手册
中文版
文档版本:0.1
发布日期:2010 年 4 月 23 日
原作者:Ceki Gülcü、Sébastien Pennec
中文版译者:陈华
联系方式:clinker@163.com
禁止用于商业用途 Logback 手册中文版
I
目录
目录 ..........................................................................................................................I
译者声明.......................................................................................................................... 1
发布记录.......................................................................................................................... 1
1. 介绍.......................................................................................................................... 2
1.1. 什么是 logback ............................................................................................ 2
1.2. 第一步 ........................................................................................................ 2
1.2.1. 必要条件.............................................................................................. 2
1.3. 构建 logback................................................................................................ 5
2. 体系结构................................................................................................................... 6
2.1. logback 的体系结构 ..................................................................................... 6
2.2. Logger、Appender 和 Layout ........................................................................ 6
2.2.1. Logger 上下文 ...................................................................................... 6
2.2.2. 有效级别(Level)即级别继承 ............................................................. 7
2.2.3. 打印方法和基本选择规则 ..................................................................... 9
2.2.4. 获取 Logger........................................................................................ 10
2.2.5. Appender 和 Layout..............................................................................11
2.2.6. 参数化记录 ........................................................................................ 13
2.2.7. 更好的替代方法 ................................................................................. 13
2.2.8. 工作原理............................................................................................ 14
2.2.9. 性能................................................................................................... 15
3. 配置........................................................................................................................ 17
3.1. Logback 里的配置 ..................................................................................... 17
3.2. 自动配置................................................................................................... 17
3.3. 用 logback-test.xml 或 logback.xml 自动配置 ............................................... 19
3.4. 自动打印警告和错误消息 .......................................................................... 19
3.5. 把默认配置文件的位置作为系统属性进行指定........................................... 21
3.6. 配置文件修改后自动重新加载 ................................................................... 22
3.7. 直接调用 JoranConfigurator ........................................................................ 22
禁止用于商业用途 Logback 手册中文版
II
3.8. 查看状态消息............................................................................................ 24
3.9. 监听状态消息............................................................................................ 25
3.10. 配置文件语法............................................................................................ 26
3.10.1. 标记名大小写敏感性 .......................................................................... 26
3.10.2. 配置 logger,或<logger>元素 .............................................................. 26
3.10.3. 配置根 logger,或<root>元素.............................................................. 27
3.10.4. 示例................................................................................................... 27
3.10.5. 配置 Appender .................................................................................... 30
3.10.6. Appender 累积 .................................................................................... 32
3.10.7. 覆盖默认的累积行为 .......................................................................... 34
3.10.8. 设置上下文名称 ................................................................................. 35
3.10.9. 变量替换............................................................................................ 36
4. Appender ................................................................................................................. 44
4.1. 什么是 Appender ....................................................................................... 44
4.2. AppenderBase ............................................................................................ 45
4.3. Logback-core ............................................................................................. 46
4.3.1. OutputStreamAppender ........................................................................ 46
4.3.2. ConsoleAppender ................................................................................ 47
4.3.3. FileAppender ...................................................................................... 48
4.3.4. RollingFileAppender ............................................................................ 51
4.3.5. TimeBasedRollingPolicy ...................................................................... 54
4.3.6. 触发策略概述..................................................................................... 60
4.4. Logback Classic ......................................................................................... 61
4.4.1. SocketAppender .................................................................................. 61
4.4.2. JMSAppenderBase............................................................................... 64
4.4.3. SMTPAppender ................................................................................... 70
4.4.4. DBAppender ....................................................................................... 78
4.4.5. SyslogAppender .................................................................................. 84
4.4.6. SiftingAppender .................................................................................. 85
4.4.7. 自定义 Appender ................................................................................ 87
禁止用于商业用途 Logback 手册中文版
III
4.5. Logback Access .......................................................................................... 89
4.5.1. SocketAppender .................................................................................. 89
4.5.2. SMTPAppender ................................................................................... 89
4.5.3. DBAppender ....................................................................................... 90
4.5.4. SiftingAppender .................................................................................. 92
5. Encoder ................................................................................................................... 94
5.1. 什么是 encoder .......................................................................................... 94
5.2. Encoder 接口 ............................................................................................. 94
5.3. LayoutWrappingEncoder ............................................................................. 95
5.4. PatternLayoutEncoder ................................................................................. 96
6. 排版(Layout)....................................................................................................... 97
6.1. 什么是 layout ............................................................................................ 97
6.2. Logback-classic .......................................................................................... 97
6.2.1. 自定义 layout ..................................................................................... 97
6.2.2. PatternLayout .....................................................................................101
6.2.3. 转换符说明 .......................................................................................103
6.2.4. 格式修饰符 .......................................................................................107
6.2.5. 圆括号的特殊含义.............................................................................108
6.2.6. 求值式(Evaluator).......................................................................... 110
6.2.7. 创建自定义格式转换符...................................................................... 115
6.2.8. HTMLLayout ..................................................................................... 117
6.3. Logback access.......................................................................................... 119
6.3.1. 自定义 layout .................................................................................... 119
6.3.2. PatternLayout ..................................................................................... 119
6.3.3. HTMLLayout .....................................................................................122
7. 过滤器(Filter).....................................................................................................123
7.1. 在 logback-classic 里 .................................................................................123
7.1.1. 常规过滤器 .......................................................................................123
7.1.2. TurboFilters .......................................................................................132
7.1.3. 重复消息过滤器(DuplicateMessageFilter)........................................135
禁止用于商业用途 Logback 手册中文版
IV
7.2. 在 logback-access 里..................................................................................137
7.2.1. 过滤器 ..............................................................................................137
8. 映射诊断环境(Mapped Diagnostic Context) ..........................................................139
8.1. 高级用法..................................................................................................141
8.2. 自动访问 MDC .........................................................................................148
8.3. MDC 和受管线程 .....................................................................................150
8.3.1. MDCInsertingServletFilter ...................................................................150
9. 记录隔离................................................................................................................152
9.1. 最简易的方法...........................................................................................152
9.2. 上下文选择器(Context Selector) ............................................................152
9.2.1. ContextJNDISelector ..........................................................................153
9.2.2. 在应用程序里设置 JNDI 变量 ............................................................153
9.2.3. 为 Tomcat 配置 ContextJNDISelector ...................................................154
9.3. 在共享类库里使用静态引用......................................................................155
10. JMX 配置器 ....................................................................................................159
10.1. 使用 JMX 配置器 .....................................................................................159
10.2. 避免内存泄露...........................................................................................161
10.3. 多个应用程序里的 JMXConfigurator..........................................................161
10.4. 支持 JMX.................................................................................................162
10.4.1. Jetty 启用 JMX(在 JDK 1.5 和 JDK1.6 上通过测试) .........................163
10.4.2. Jetty 启用 MX4J(在 JDK 1.5 和 JDK1.6 上通过测试) .......................164
10.4.3. Tomcat 启用 JMX(在 JDK 1.5 和 JDK1.6 上通过测试) .....................166
10.4.4. Tomcat 启用 MX4J(在 JDK 1.5 和 JDK1.6 上通过测试) ...................166
11. Joran ...............................................................................................................168
11.1. 历史回顾..................................................................................................168
11.2. SAX 还是 DOM? ....................................................................................169
11.3. 模式(Pattern)........................................................................................169
11.4. 动作(Action) ........................................................................................169
11.5. RuleStore..................................................................................................170
11.6. 解释上下文(Interpretation context) .........................................................171