,所以我們在使用的Log4j我們的J2EE應用程序是這樣的Log4j到configureAndWatch()產卵數千個線程
public class CustomerController
{
private static Logger logger = Logger.getLogger(CustomerController.class);
public CustomerService customerservice = null;
public CustomerController() throws Exception
{
PropertyConfigurator.configureAndWatch("c:\log4j.property", 50000);
customerservice = ServiceManagerSingleton.getCustomerServiceInstance();
}
}
這樣我們就可以更改日誌級別的實時。非常便利。我們大多數課程都是像這個控制器一樣設置的。我們使用單例模式,這樣我們只有一個eash類的實例;一次調用PropertyConfigurator.configureAndWatch()爲每個類調用一次。
問題:每週大約兩次我們的應用程序服務器死亡並創建一個堆轉儲。從IBM使用堆分析我們可以看出,似乎有很多相關的Log4j的線程:
808 (0%) [200] 9 org/apache/log4j/PropertyWatchdog 0x14282ad8
的約3萬總。所以這可能是突然崩潰的原因。
- 我們是否正確設置它?
- 當EAR重新部署時,所有這些線程會發生什麼?
您是否在使用Spring? – serg 2009-08-26 22:20:48