【问题标题】:Why log4J not working after adding apache CXF?为什么添加 apache CXF 后 log4J 不起作用?
【发布时间】:2014-01-08 13:19:39
【问题描述】:

我使用 JSF 开发了小型 Web 应用程序,并添加了 log4j 来处理日志记录。一切正常,直到我在我的 Web 应用程序中实现添加 Web 服务。使用 apache CXF 实现 web 服务后,我的日志文件中没有任何日志,但可以在 eclipse 控制台中获取日志。我不知道为什么,它的行为是这样的?我的日志文件只显示类似
的消息,我正在使用 jdk1.5、log4j 1.2.15 和 CXF 2.6.11。我也尝试了一些来自 apache 的解决方案来使用 log4j 而不是 cxf 默认记录器。请参考http://cxf.apache.org/docs/debugging-and-logging.html#DebuggingandLogging-LoggingMessages

但是推荐的解决方案对我不起作用。我该如何解决这个问题?

【问题讨论】:

  • 是的,我用过 slf4j

标签: log4j cxf


【解决方案1】:

可能是 CXF 引入了另一种日志机制,这意味着添加了另一种日志机制,或者 slf4j/log4j 的导入版本不兼容。 我建议您检查 CXF pom 文件,并排除所有 log4j/slf4j jar 文件。

【讨论】:

  • 是的,您的观点是正确的。现在你的解决方案对我有用。非常感谢
【解决方案2】:

正如@Arash 所说,从类路径中删除 log4j(如果存在)。还将文件META-INF/cxf/org.apache.cxf.Logger 添加到类路径中,内容如下:

org.apache.cxf.common.logging.Slf4jLogger

参考:Using SLF4J Instead of java.util.logging

【讨论】:

    【解决方案3】:

    通过从 CXF 中删除 slf4j-jdk14.jar 解决了问题。实际上问题是“类路径包含多个 SLF4J 绑定”。所以我删除了 CXF log4j 绑定。现在它工作得很好。谢谢大家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-01
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多