java日志框架

最近在应用中第一次接触到JUL(java.util.logging),顺便对自己使用过的日志框架做个简单的总结

Java里的日志框架很多,[url=http://www.open-open.com/29.htm]open-open[/url]上面就记载了一大堆,比较常用的有Log4j, Jakarta Commons Logging (JCL), JUL, SLF4J, Logback等,主要可以分为两大类

[b][size=medium]一、完整的日志实现,比如Log4j, JUL, Logback[/size][/b]

[b]Log4j[/b]: JAVA里面出现最早,1999年由Ceki Glc创建。Log4j凭借强大的功能,简单的配置,丰富齐全的appender,灵活的自定义layout,成为使用最为广泛的日志框架。虽然面临Logback这样新兴框架的竞争,但在将来很长一段时间内,Log4j始终会是JAVA日志框架的主流

[b]JUL[/b]: JDK1.4引进的日志系统。使用下来感觉是在Log4j基础上再造的轮子,对Log4j使用的名词概念做了一些重命名,但在功能与易用性上都比不上Log4j。对于简单的日志纪录还可以用用,至少不用导入第三方JAR包

[b]Logback[/b]: JAVA日志框架的后起之秀,同样出自Log4j作者Ceki Glc之手,解决了很多Log4j遗留的问题,比起Log4j有更好的性能,支持自动重新装载配置文件等优点。很多开源项目有转向Logback的趋势,像Tapestry, Hibernate, Spring都已经采用logback,但想达到完全取代Log4j的目标,还需要很长一段时间

[b][size=medium]二、日志接口,比如JCL, SLF4J。只提供一个简单的日志操作接口,允许开发人员通过配置文件,使用不同的日志实现框架[/size][/b]

[b]JCL[/b]: Apache出品的日志接口,用于屏蔽Log4j与JUL的实现差异,JCL+Log4j是目前最主流的搭配

[b]SLF4J[/b]: 同样是Log4j的作者Ceki Glc创建,用来取代JCL。Simple Logging Facade for Java,从它的名字就可以看出它只承担Facade的角色,允许开发以使用统一的日志接口,整合不同的日志实现。做为一个新兴的框架,它几乎对Log4j, JUL, Logback所有的实现框架都提供了支持。SLF4J支持参数化的log,比如在JCL里面,出于性能考虑,日志代码常常是这样的

logger.isDebugEnabled(){
logger.debug("user id : " + userId);
}


在SLF4J里面可以直接写
logger.debug("user id : {}", userId);

[b]
[size=medium]这么多框架该如何选择?[/size][/b]

我觉得对于新的项目,完全可以考虑采用SLF4J+Logback, 它们跟Log4j都是由同一作者创建,概念上很相似,转移成本很小。SLF4J提供的参数化日志接口代码量更小,更清晰

对于老项目,如果不需要整合不同的日志实现,保留原来的框架就好,没必要为了日志功能而大作修改
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值