log4j slf4j logback

农码经神 2011-08-09

项目一直在用Log4j作为日志框架,最近发现不少开源应用都开始采用slf4j,不禁好奇google了一下slf4j的介绍:

简单日记门面(Facade)SLF4J是为各种logingAPIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的logingAPIs实现。LoggingAPI实现既可以选择直接实现SLF4J接的logingAPIs如:NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。

一并搜到的还有关于logback的介绍:

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

Log4Jvs.LOGBack

LOGBack作为一个通用可靠、快速灵活的日志框架,将作为Log4j的替代和SLF4J组成新的日志系统的完整实现。LOGBack声称具有极佳的性能,“某些关键操作,比如判定是否记录一条日志语句的操作,其性能得到了显著的提高。这个操作在LogBack中需要3纳秒,而在Log4J中则需要30纳秒。LogBack创建记录器(logger)的速度也更快:13微秒,而在Log4J中需要23微秒。更重要的是,它获取已存在的记录器只需94纳秒,而Log4J需要2234纳秒,时间减少到了1/23。跟JUL相比的性能提高也是显著的”。

另外,LOGBack的所有文档是全面免费提供的,不象Log4J那样只提供部分免费文档而需要用户去购买付费文档。

由此可见最佳组合是slf4j+logback

在单纯的logging环境中,使用SLF4J意义不大。如果想在各种loggerAPI中切换,SELF4J是理想选择,另外在新的项目中,使用SLF4J+Logback是比较好的日志框架选型。

相关推荐