【发布时间】:2013-08-01 23:10:28
【问题描述】:
简而言之:如何在 Web 应用程序中使用的第三方 jar 中配置一些 Log4j 记录器,以便它停止写出类似的警告
log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.WireFormatNegotiator).
log4j:WARN Please initialize the log4j system properly.
并防止干净的关闭引发类似的错误
Exception in thread "InactivityMonitor WriteCheck" java.lang.NullPointerException
Exception in thread "InactivityMonitor ReadCheck" at java.util.TimerThread.run(Unknown Source) java.lang.NullPointerException
详情:
我正在编写一个使用 Apache ActiveMQ 的 Tomcat Web 应用程序。除了 activemq-all-5.5.1.jar 我必须将以下库放在类路径中以消除类路径问题:
- log4j-1.2.15.jar
- slf4j-api-1.5.11.jar
- slf4j-log4j12-1.5.11.jar
现在我的应用程序开始打印上述警告。有a link on the Apache ActiveMQ web site,可惜坏了,Log4j wiki下线了。
我尝试创建一个名为 log4j.xml 的文件,如 here 所述,并将其放在 WEB-INF/ 目录中(我希望它属于) 但我也尝试将它与我的源代码一起放入“默认包”中(即 WEB-INF/classes/)。我还尝试了将 XML 标头添加到文件中的方法,就像我看到的 here 一样。它们都不能在任何一个位置工作。我在别处读到必须通过将-Dlog4j.configuration= 参数传递给JVM 来传递位置,但这不能在Web 应用程序上下文中使用。 Log4j for web application tutorial 展示了如何使用 web.xml 对其进行配置,但这需要库包含扩展 HttpServlet 的类。我猜Active MQ中没有这样的类,即使,我怎么找到它?
也许我完全错误的树,我不必配置 Log4j 本身,而是 Slf4j 它将默默地为我配置 Log4j?
只要我不需要这个记录器,最简单的方法是什么?
【问题讨论】:
标签: jakarta-ee web-applications log4j activemq slf4j