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

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