我有一個運行 WebApp 的 WebSphere Application Server。我從 Eclipse 啟動服務器。該應用程序中的主要日志框架是 log4j2,但也有一些第三方庫使用 java.util.logging。我想將這些日志重定向到 log4j2,以便它使用我的過濾器、日志格式等。我已經在這里和這里問過關于這個話題的問題。首先,我嘗試通過將 java util設置為 log4j-jul jar 提供的方法來使用 apache 建議的方法。LogManager如第一個鏈接問題所示,這在我的用例中并不適用。因為應用程序在 Websphere 服務器中作為 WebApp 運行,所以實際上并沒有加載 log4j-jul jar 并且我可以換出LogManager, 但在任何調用 java util 之前Logger或者LogManager因為服務器使用這些在加載 jar 并配置我的 Log4J2 設置之前記錄語句。然后我嘗試Log4jBridgeHandler按照第二個鏈接問題中的建議使用。起初我認為這很有效,因為我的測試 java util Log 語句以我當前的 Log4j2 格式打印。不過,這種方法確實有兩個問題:我不能使用設置處理程序和級別的方式,logging.properties因為它根本沒有效果(我已經通過文件中的系統屬性設置了logging.properties文件的路徑)。java.util.logging.config.filejvm.options幫助的是使用 的install()方法Log4jBridgeHandler,因為這使得 java util 日志以我的 Log4j2 格式打印。但是我創建的 java utilLogger沒有所需的級別,ALL而是 default INFO,盡管根記錄器具有正確的級別。因此,java util 日志記錄函數中的默認守衛阻止了橋接器被輸入,因此我永遠無法記錄低于該INFO級別的任何內容。所以是的,我沒有主意。我做錯什么了嗎?我所做的應該有效嗎?
1 回答

動漫人物
TA貢獻1815條經驗 獲得超10個贊
我做錯什么了嗎?我所做的應該有效嗎?
Log4jBridgeHandler 執行從 LOG4J2 到 JUL 的級別傳播。嘗試在 log4j2.xml 中添加一個記錄器條目來設置命名記錄器的級別。
在您的 logging.properties 中,您可以通過以下方式關閉它:
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels=false
添加回答
舉報
0/150
提交
取消