[英]Logging with slf4j and any other logging framework (log4j/java.util.logging)
[英]mixed java logging with slf4j, log4j and java.util.logging
我正在Weblogic服務器中運行一個Web應用程序(我不太熟悉)。
通過JVM args,將日志級別為DEBUG的log4j配置傳遞給應用程序。 在日志文件中,我還可以找到一些DEBUG級別的日志條目。
到現在為止還挺好。
在調試期間,我發現一些對logger.debug()的調用不在日志文件中。
私有靜態最終org.slf4j.Logger logger = LoggerFactory.getLogger(ActionCtr.class);
該方法調用肯定已命中,但未將任何內容寫入文件。
如果在調試過程中進行了調試,則會在記錄器中看到:org.slf4j.impl.JDK14LoggerAdapter(com.example.application.ActionCtr)“ java.util.logging.FileHandler.pattern”->“%h / java%u .log”
這給我帶來了一些問題(因為我無法更改正在運行的應用程序):
1)怎么可能會使用該應用程序,卻使用了log4j和java.util.logging的混合體
2)我如何確定在哪些類中使用了什么?
3)沒有%h / java%u.log(〜/ java * .log),所以我嘗試提供一個java.util.logging符合屬性文件,但這沒有改變-我如何確定在哪里運行logger從其配置中獲取對其進行配置嗎?
1)怎么可能會使用混合了log4j和java.util.logging的應用程序
這些日志記錄框架中的任何一個都可以由應用程序直接使用,也可以由應用程序使用的依賴庫使用。 不需要太多的依賴關系就可以構成一堆日志記錄框架搭便車者。
SLF4J手冊解釋了該日志記錄框架如何使所有其他框架陷入困境。 這就是為什么您看到org.slf4j.impl.JDK14LoggerAdapter
。
我如何確定在什么班級使用了什么?
假設你的意思是直接的用途可以使用Jdeps或javap的 。
我如何確定正在運行的記錄器從何處獲取其配置以進行正確配置?
JConsole工具可以在運行時訪問JUL記錄器。 它還將向您顯示所有系統屬性,其中可能包括logging.properties
文件的路徑。
如果應用程序以非標准的方式實用地配置日志記錄,那么一種選擇是使用帶有access
選項的java.security.debug
。 在安全管理器下運行該應用程序將獲得全部或所有必需的權限,但隨后啟用訪問跟蹤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.