003_commons-logging与slf4j和log4j与logback

1. 日志接口常用的有commons-logging和slf4j, 日志实现常用的有log4j和logback。那么, 我们应该选取什么样的组合呢?

2. Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块: logback-core, logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个改良版本。此外logback-classic完整实现slf4j api使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

3. logback与Log4J的比较

3.1. 更快的实现: Logback的内核重写了, 在一些关键执行路径上性能提升10倍以上。而且logback不仅性能提升了, 初始化内存加载也更小了。

3.2. Logback-classic完整实现了slf4j api: logback-classic完整实现slf4j api, 在使用slf4j中, 你都感觉不到logback-classic。因为logback-classic非常自然地实现了slf4j, 所以切换到log4j或者其他日志系统, 非常容易, 只需要提供成另一个jar包就OK, 根本不需要去动那些通过slf4j api实现的代码。  

3.3. 自动重载配置文件: 当配置文件修改了, Logback-classic能自动重新加载配置文件。扫描过程快且安全, 它并不需要另外创建一个扫描线程。

3.4. 安全模式和友好恢复: 在谨慎模式下, 多个FileAppender实例跑在JVM下, 能够安全地写同一个日志文件。Logback的FileAppender和它的子类包括RollingFileAppender能够非常友好地从I/O异常中恢复。

3.5. 配置文件可以处理不同的情况: 开发人员经常需要判断不同的Logback配置文件在不同的环境下(开发, 测试, 生产)。而这些配置文件仅仅只有一些很小的不同, 就可以实现, 这样一个配置文件就可以适应多个环境。

3.6. Filters(过滤器): 有些时候, 需要诊断一个问题, 需要打出日志。在log4j, 只有降低日志级别, 不过这样会打出大量的日志, 会影响应用性能。在Logback, 你可以继续保持那个日志级别而除掉某种特殊情况, 如alice这个用户登录, 她的日志将打在DEBUG级别而其他用户可以继续打在WARN级别, 要实现这个功能只需加4行XML配置。

3.7. SiftingAppender(一个多功能的Appender): 它可以用来分割日志文件根据任何一个给定的运行参数。如SiftingAppender能够区别日志事件跟进用户的Session, 然后每个用户会有一个日志文件。

3.8. 自动压缩log日志: RollingFileAppender在产生新文件的时候, 会自动压缩已经打出来的日志文件。压缩是个异步过程, 所以甚至对于大的日志文件, 在压缩过程中应用不会受任何影响。

3.9. 自动去除旧日志: 通过设置SizeAndTimeBasedRollingPolicy或者TimeBasedRollingPolicy的maxHistory属性, 你可以控制已经产生日志文件的最大数量。如果设置maxHistory为12, 那那些log文件超过12个月的都会被自动移除。

4. 当年Apache说服log4j以及其他的日志来按照commons-logging的标准编写, 但是由于commons-logging的类加载有点问题, 实现起来也不友好, 于是乎就用有人创作了slf4j, 也因此而与commons-logging两分天下。更加推荐slf4j+logback的组合。 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值