據我瞭解,log4j可以處理系統屬性-Dlog4j.debug。如果你運行你的應用程序,你會得到log4j的調試輸出。Log4j 2.如何獲得log4j的調試消息?
例如:java -Dlog4j.debug罐子Test.jar的
是否有log4j的2類似的東西?
據我瞭解,log4j可以處理系統屬性-Dlog4j.debug。如果你運行你的應用程序,你會得到log4j的調試輸出。Log4j 2.如何獲得log4j的調試消息?
例如:java -Dlog4j.debug罐子Test.jar的
是否有log4j的2類似的東西?
根據LOG4J2-282這可以使用你的配置(log4j2.xml)完成。
看來他們也已經(重新)在log4j-2.0b8中實現了系統屬性,雖然對該JIRA問題的一些評論表明它仍然可能無法正常工作。
我已經很難讓Log4J2啓動並運行,並且打印StatusLogger也不例外。從理論上講,你可以在配置文件中使用status
字段進行設置,但是我無法做到這一點。
您可以運行在你的主要方法開始但是以下幾點:
StatusConsoleListener listener = new StatusConsoleListener(Level.ALL);
StatusLogger.getLogger().registerListener(listener);
LogManager.getLogger(LogManager.ROOT_LOGGER_NAME); // initialize logger
注意你的main()
類不能有任何靜態記錄儀,否則他們會在這之前被初始化被調用,這意味着加載狀態消息不會打印。
更新2018年1月:
從Log4j的2.10,這是很簡單:只是系統屬性log4j2.debug
運行程序(無需值;空字符串是罰款)。
狀態記錄器上的當前(log4j-2.1)文檔有點混淆。 基本上:
org.apache.logging.log4j.simplelog.StatusLogger.level
控制。<Configuration status="trace">
。更新:documentation在log4j-2.2中得到了改進。
可能令人困惑的是,Log4J 1.x命令行參數-Dlog4j.debug
的最近等價爲-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=trace
,它將Log4J 2.x「狀態記錄器」級別設置爲跟蹤並提供有關日誌記錄配置的詳細輸出。
Log4J的1.x的允許用戶手動指定使用-Dlog4j.configuration=file:///var/lib/tomcat7/log4j.xml
所述配置文件位於/var/lib/tomcat7/log4j.xml
在命令行上的配置文件的位置。在Log4J 2.x中,參數-Dlog4j.configurationFile=file:///var/lib/tomcat7/log4j.xml
'配置文件'中存在細微的差異,而不是'配置'。
很明顯,您需要確保您的配置文件適用於正在使用的Log4J版本,XML結構在1.x和2.x之間不同。