【问题标题】:Selecting Logging Provider选择日志记录提供程序
【发布时间】:2012-03-08 03:40:38
【问题描述】:

我已将我的应用程序配置为将 slf4j 与 log4j 一起使用,但是 JBoss 记录器是如何被选择而不是 slf4j 的:

org.jboss.logging [DEBUG] 日志提供程序:org.jboss.logging.Log4jLoggerProvider。

我的应用程序使用 spring 和 hibernate,据我了解,hibernate 现在使用 JBoss 记录器而不是 slf4j。我是否可以强制使用 slf4j?或者更好的是,让我的日志调用 API 不可知?就目前而言,hibernate 和 spring 日志正确,但我的应用程序特定日志记录被忽略,因为它使用 slf4j API。

更新:记录相关的 jars(由 maven 管理)包括:

  1. slf4j-api-1.6.1
  2. slf4j-parent-1.6.1
  3. slf4j-simple-1.6.1
  4. slf4j-log4j12-1.6.1
  5. jboss-logging-3.1.0.CR2
  6. log4j-1.2.12

谢谢。

【问题讨论】:

  • 你能把你放在 webapp 的 WEB-INF/lib 中的日志相关的 jar 列表添加进去吗?

标签: java logging log4j slf4j


【解决方案1】:

您的类路径中有太多的日志记录实现。

显然 Hibernate 使用 SLF4J:documentation

所以你应该删除以下罐子:

  • slf4j-simple-1.6.1(与slf4j-log4j冲突)
  • jboss-logging-3.1.0.CR2

我不太确定 slf4j-parent-1.6.1 是什么,你可以试试有无。

【讨论】:

  • 感谢您的建议,我会删除这些罐子,看看会发生什么。至于使用 SLF4J 的 Hibernate,我查看了您链接到的文档,但是,在 4.0.1.Final pom.xml 文件中 jboss-logging:3.1.0.CR2 被列为依赖项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多