差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
java:log4j:config_watchdog [2013/03/14 00:57]
tony
java:log4j:config_watchdog [2023/06/25 09:48] (目前版本)
行 58: 行 58:
 </​code>​ </​code>​
 於是重頭開始trace PropertyConfigurator,在parseCategory中發現它會透過logger的removeAllAppenders,將可能原有的Appender都close掉,且它每一個Appender都是相同的instance。這會造成什麼問題?​ 因為Log4j在做config的時候,會根據你所設定的package去加入Appender。如果你移除了某些package,又或者像是Problem中增加package的child而不保留原本的。**原先的package並沒有被Log4j回收或清除**,它在執行log時,會使用原本設定在它身上的Appender,跟著就死翹翹啦!\\ 於是重頭開始trace PropertyConfigurator,在parseCategory中發現它會透過logger的removeAllAppenders,將可能原有的Appender都close掉,且它每一個Appender都是相同的instance。這會造成什麼問題?​ 因為Log4j在做config的時候,會根據你所設定的package去加入Appender。如果你移除了某些package,又或者像是Problem中增加package的child而不保留原本的。**原先的package並沒有被Log4j回收或清除**,它在執行log時,會使用原本設定在它身上的Appender,跟著就死翹翹啦!\\
-\\ +
-友藏內心獨白:​ 沒人會想深入了解真正原因吧!+
 ===== Reference ===== ===== Reference =====
   * [[http://​blog.csdn.net/​bxyz1203/​article/​details/​7645185|log4j:​ERROR Attempted to append to closed appender named的問題]]   * [[http://​blog.csdn.net/​bxyz1203/​article/​details/​7645185|log4j:​ERROR Attempted to append to closed appender named的問題]]