`

logback取代log4j的理由

 
阅读更多

首先来说:logback和log4j非常的相似。如果你对log4j很熟,那么你对logback也会得心应手。

 

闲话少说,来看看到底有哪些理由:

 

1、更快的实现。logback对内核进行了重写,在许多关特定环境中性能提升了10倍。而且logback不仅性能提升了,并且在保证初始化速度的同时,内存加载也更小了。

 

2、更加充分的测试。logback经过了几年,数不清的小时测试。尽管log4j也进行过测试,但与logback相比,完全不在同一级别。这个应该是选择logback最重要的原因。

 

3、logback-classic很自然地实现了SLF4Jlogback-classic中的登陆类自然的实现了SLF4J。当你使用logback-classic作为底层实现时,涉及到LF4J日记系统的问题你完全不需要考虑。更进一步来说,由于 logback-classic强烈建议使用SLF4J作为客户端日记系统实现,如果需要切换到log4j或者其他,你只需要替换一个jar包即可,不需要去改变那些通过

 

4、完备的文档。官网的数百页的文档。这足可让你找到你想找的任何资料。

 

5、自动重新加载配置文件。当配置文件修改了,logback-classic能自动重新加载配置文件。扫描过程快且安全,它并不需要创建一个扫描线程。这个技术充分保证了应用程序能跑得很欢在J2EE环境里面。

 

6、Lilith  lilith是log事件的观察者,和log4j的chainsaw类似。而lilith还能处理大数量的log数据。

 

7、谨慎的模式和非常友好的恢复。在谨慎模式下,多个FileAppender实例跨在多个JVM下,能够安全地写道同一个日志文件。RolingFileAppender会有一些限制。Logback的FileAppender和它的子类包括RollingFileAppender能够非常友好地从I/O异常中恢复。

 

8、配置文件可以处理不同的情况。开发人员经常需要判断不同的logback配置文件在不同的环境下(开发,测试,生产)。而这些配置文件仅仅只有一些很小的不同,可以通过logback的条件判断<if>,<then>和<else>,这样就可以适应多个环境了。

 

9、过滤能力Logback拥有远比log4j更丰富的过滤能力。例如,让我们假设,有一个相当重要的商业应用部署在生产环境。考虑到大量的交易数据需要处理,记录级别被设置为WARN,那么只有警告和错误信息才会被记录。现在,想象一下,你在开发环境遇到了一个臭虫,但是在测试平台中却很难发现,因为一些环境之间(生产环境/测试环境)的未知差异。

使用log4j,你只能选择在生产系统中降低记录的级别到DEBUG,来尝试发现问题。但是很不幸,这会生成大量的日志记录,让分析变得困难。更重要的是,多余的日志记录会影响到生产环境的性能。

使用logback,你可以选择保留只所有用户的WARN级别的日志,而除了某个用户,例如Alice,而她就是问题的相关用户。当Alice登录系统,她就会以DEBUG级别被记录,而其他用户仍然是以WARN级别来记录日志。这个功能,可以通过在配置文件的XML中添加4行。请在官网中中查找MDCFilter

 

10、多功能的Appender(SifftingAppender)SiftingAppender是一个全能的追加器。它可以基于任何给定的实时属性分开(或者筛选)日志。例如,SiftingAppender可以基于用户会话分开日志事件,这样,可以为每一个用户建立一个独立的日志文件。

 

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

 

12、堆栈树带有包版本Logback在打出堆栈树日志时,会带上包的数据。

 

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

 

 logback的官方网站: http://logback.qos.ch

 SLF4J的官方网站:http://www.slf4j.org

 

 

出自:http://www.cnblogs.com/yuanermen/archive/2012/02/13/2348942.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics