如何设置commons-logging以使用logback?

Art*_*tem 52 java logging logback apache-commons-logging

我们使用slf4j + logback,碰巧有一些使用commons-logging的第三方库.如何设置它以使用logback?

Spe*_*mos 49

答案是不使用commons-logging.jar,因为SLF4J的目的是做公共日志记录但做得更好.正如@MahdeTo所指,您需要使用jcl-over-slf4j.jar.

查看slf4j网站上有关从commons-logging迁移的文档.

  • 你没看过这个问题吗?他们使用的是使用公共日志记录的第三方库. (32认同)
  • 确实.但是你可以保存迂腐和最严格的文字阅读,看看我的意思是OP不应该使用commons-logging.jar.OP得到了,为什么需要添加一个非建设性的评论呢? (7认同)
  • 还请查看SLF4J的常见问题解答,其中显示了如何从maven依赖项中排除commons-logging:http://slf4j.org/faq.html#excludingJCL (4认同)
  • 因此,我没有得到"LOL对那个低估这个答案的人,而没有解释为什么",请参阅上述评论原因. (2认同)

GMs*_*soF 12

我也遇到过这个问题,发现jcl-over-slf4j.jar确实可以解决问题,我无法理解为什么commons-logging不能logback自动使用,因为commons-logging是日志界面而且logback是实现,它们应该自动集成,直到我发现这个:

Apache Commons Logging(JCL)提供了一个Log接口,旨在实现轻量级和独立的其他日志工具包的抽象.它为中间件/工具开发人员提供了简单的日志记录抽象,允许用户(应用程序开发人员)插入特定的日志记录实现.

JCL为其他日志工具提供了精简包装日志实现,包括Log4J,Avalon LogKit(Avalon Framework的日志记录基础结构),JDK 1.4以及用于1.4之前系统的JDK 1.4日志API(JSR-47)的实现.该接口与Log4J和LogKit紧密相关.

显然,并不是所有的日志界面都可以很好地与日志实现集成,这意味着,如果你真的想要使用logback,那么jcl-over-slf4j.jar现在是你唯一的解决方案,因为JCL只有支持Log4J, Logkit, JDK 1.4.


Lu5*_*u55 5

只需添加jcl-over-slf4j到项目的依赖项(在https://search.maven.org/search?q=g:org.slf4j%20AND%20a:jcl-over-slf4j&core=gav检查当前版本)