一, logback 的介绍
Logback 是由 log4j 创始人设计的另一个开源日志组件.
logback-core: 其它两个模块的基础模块: 五分彩源码搭建, 企 娥: 217 1793 408
logback-classic: 它是 log4j 的一个改良版本, 同时它完整实现了 slf4j API 使你可以很方便地更换成其它日志系统如 log4j 或 JDK14 Logging
logback-access: 访问模块与 Servlet 容器集成提供通过 Http 来访问日志的功能
二, logback 取代 log4j 的理由:
1, 更快的实现: Logback 的内核重写了, 在一些关键执行路径上性能提升 10 倍以上. 而且 logback 不仅性能提升了, 初始化内存加载也更小了.
2, 非常充分的测试: Logback 经过了几年, 数不清小时的测试. Logback 的测试完全不同级别的.
3,Logback-classic 非常自然实现了 SLF4j:Logback-classic 实现了 SLF4j. 在使用 SLF4j 中, 你都感觉不到 logback-classic. 而且因为 logback-classic 非常自然地实现了 slf4j , 所 以切换到 log4j 或者其他, 非常容易, 只需要提供成另一个 jar 包就 OK, 根本不需要去动那些通过 SLF4JAPI 实现的代码.
4, 非常充分的文档 官方网站有两百多页的文档.
5, 自动重新加载配置文件, 当配置文件修改了, Logback-classic 能自动重新加载配置文件. 扫描过程快且安全, 它并不需要另外创建一个扫描线程. 这个技术充分保证了应用程序能跑得很欢在 JEE 环境里面.
6,Lilith 是 log 事件的观察者, 和 log4j 的 chainsaw 类似. 而 lilith 还能处理大数量的 log 数据 .
7, 谨慎的模式和非常友好的恢复, 在谨慎模式下, 多个 FileAppender 实例跑在多个 JVM 下, 能 够安全地写道同一个日志文件. RollingFileAppender 会有些限制. Logback 的 FileAppender 和它的子类包括 RollingFileAppender 能够非常友好地从 I/O 异常中恢复.
8, 配置文件可以处理不同的情况, 开发人员经常需要判断不同的 Logback 配置文件在不同的环境下 (开发, 测试, 生产). 而这些配置文件仅仅只有一些很小的不同, 可以通过, 和来实现, 这样一个配置文件就可以适应多个环境.
9,Filters(过滤器) 有些时候, 需要诊断一个问题, 需要打出日志. 在 log4j, 只有降低日志级别, 不过这样会打出大量的日志, 会影响应用性能. 在 Logback, 你可以继续 保持那个日志级别而除掉某种特殊情况, 如 alice 这个用户登录, 她的日志将打在 DEBUG 级别而其他用户可以继续打在 WARN 级别. 要实现这个功能只需加 4 行 XML 配置. 可以参考 MDCFIlter .
10,SiftingAppender(一个非常多功能的 Appender): 它可以用来分割日志文件根据任何一个给定的运行参数. 如, SiftingAppender 能够区别日志事件跟进用户的 Session, 然后每个用户会有一个日志文件.
11, 自动压缩已经打出来的 log:RollingFileAppender 在产生新文件的时候, 会自动压缩已经打出来的日志文件. 压缩是个异步过程, 所以甚至对于大的日志文件, 在压缩过程中应用不会受任何影响.
12, 堆栈树带有包版本: Logback 在打出堆栈树日志时, 会带上包的数据.
13, 自动去除旧的日志文件: 通过设置 TimeBasedRollingPolicy 或者 SizeAndTimeBasedFNATP 的 maxHistory 属性, 你可以控制已经产生日志文件的最大数量. 如果设置 maxHistory 12, 那那些 log 文件超过 12 个月的都会被自动移除.
来源: http://www.bubuko.com/infodetail-2674897.html