簡而言之:如何在Web應用程序中使用的第三方jar中配置某些Log4j記錄器,以便停止寫出類似如何在Web應用程序中禁用log4j(關閉WARN消息)
的警告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
細節:
我正在編寫一個Tomcat Web應用程序,它將使用Apache ActiveMQ。除了的ActiveMQ,全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應用程序上下文中使用該參數。 A Log4j for web application tutorial顯示瞭如何使用web.xml對其進行配置,但要求庫包含擴展HttpServlet
的類。我猜在Active MQ中沒有這樣的類,即使我如何找到它?
也許我正在吠叫完全錯誤的樹,我不必配置Log4j本身,而是Slf4j然後會爲我默默配置Log4j?
只要我不需要它,最簡單的方法就是將這個記錄器乾乾淨淨地關掉它?