2011-05-20 46 views
1

好吧,所以我有這個愚蠢的庫(documentum DFC),它會檢查是否Logger.getRootLogger().getAllAppenders().hasMoreElements() == false,如果是這樣,它會將我的rootLogger級別重置爲WARN,這會在此之後破壞我的日誌記錄。因此,爲了阻止這種情況,我試圖向根記錄器添加appender,以查看是否可以停止執行該代碼。但是,當 我打電話以編程方式添加Log4J appenders

Logger.getRootLogger().addAppender(new ConsoleAppender());該功能仍然是錯誤的。有沒有人遇到過這個?

我使用任何log4j版本自帶jboss 6,它不會在jar文件名中說。

+0

可能的log4j正在從兩個不同的類加載器加載的,所以你有兩個不同的根記錄器?或者,也許其他代碼添加後刪除appender? – 2011-05-20 12:45:44

+0

@ user428916:如果你想檢查false值,不要使用== ==運算符。只要像這樣使用它'if(!Logger.getRootLogger()。getAllAppenders()。hasMoreElements())'。 – 2011-05-20 12:56:27

回答

0

我也有類似的問題。我可以添加一個appender,寫入一個內存字符串,但這從來不起作用。 對於我來說似乎像JBoss不使用/修改的log4j的方式,此代碼的修改不再可能,也見這裏:https://issues.jboss.org/browse/JBAS-9318