2012-12-03 64 views
0

是否可以添加或覆蓋先前由log4j.xml文件加載的log4j配置與在運行時加載的另一個log4j.xml文件?用另一個log4j.xml文件覆蓋log4j配置

我的Glassfish服務器在啓動時加載log4j.xml文件,我想用EAR文件中的另一個log4j.xml文件更改此配置。

我試着使用DOMConfigurator.configure("log4j.xml"),但似乎以前的配置沒有被覆蓋(但這個方法找到log4j.xml文件,因爲當我改變到非現有文件,我有異常)。

我該怎麼做?

回答

2

log4j Configurator始終應用從「當前」設置開始的配置。如果您希望新設置替換舊設置,只需先致電LogManager.resetConfiguration(),然後致電DOMConfigurator

+0

我之前測試過,但對於我的情況,它不起作用。上下文是:在Glassfish啓動時加載log4j.xml,我希望這個文件被EAR項目中的另一個log4j.xml文件覆蓋。我測試這個在啓動時加載的servlet( 1) –

+0

好的,我發現了這個問題。 DOMConfigurator.configureAndWatch( 「的log4j.xml」);加載Glassfish中的log4j.xml文件(已經加載的文件...),而不是我的EAR中的新文件,我不知道爲什麼 –