java的日志到底是怎么一回事

发布于 2022-09-02 01:32:04 字数 399 浏览 14 评论 0

关于java的日志的种类繁多表示一个新人实在被绕晕了

请问以下的东西是什么、有什么作用、有什么关系?

  1. commons-logging

  2. log4j

  3. logback

  4. slf4j

  5. ....

主要引起我绕晕的是这个篇文章


http://blog.csdn.net/wangjunjun2008/article/details/18732019

http://www.oschina.net/translate/why-use-sl4j-over-log4j-for-logging

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

叶落知秋 2022-09-09 01:32:04

首先,你需要了解一个设计模式:适配器模式。

Java用来记录日志的库有很多,例如有JDK自带的Logger、Log4j、Logback,它们之间互相不兼容,通常情况下,我们写代码的时候选用其中一个就可以了。

但是,如果有一天你写的代码开源了,要给别人使用,那么问题就来了,该使用哪个日志库?当然不能随便选用一个了,因为你不知道使用你的开源库的人用的哪个日志框架。这时候你想无论别人使用哪个日志框架,你都可以兼容,这时候就要使用commons-logging或slf4j了。所以一般开源框架都不会使用具体的日志框架,而是用commons-logging或slf4j处理日志,这样可以根据使用者使用的具体日志框架来记录日志,例如Hibernate用的是slf4j(不过好像最新版本用的是JBOSS的适配器了)、Spring用的是commons-logging。

Java在日志这块不像JDBC,JDBC有一套共同的标准API,无论你连接Oracle、MySQL,API接口都是一样的。但是日志库JDK Logger、Log4j、Logback是互相不兼容的,没有共同的Interface,所以commons-logging、slf4j通过适配器模式,抽象出来一个共同的接口,然后根据使用的具体日志框架来实现日志。

总结一下,就是JDK Logger、Log4j、Logback是具体的日志框架的实现,commons-logging、slf4j是解决日志框架之间不兼容而抽象出来的适配器接口。

最后,这篇博客是我对slf4j的源码解析,希望对你有帮助:http://blog.csdn.net/xiao__gui/article/details/32695647

-残月青衣踏尘吟 2022-09-09 01:32:04

有的是接口,有的是实现。slf4j是log4j的升级版,都实现commons-logging。

〃安静 2022-09-09 01:32:04

slf4j是一个log的facade,你可以选择底层是使用commons-logging,log4j,logback等具体的实现。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文