2014-09-04 50 views
1

我正在寫一個將在tomcat服務器上的應用程序。該應用程序爲我們所服務的每個客戶端多次實例化。Log4j每個實例寫入一個文件

我將Log4j引入到應用程序中。客戶端文件將被創建並且日誌輸出將被寫入它。

我面臨的問題是每次創建新實例時,來自其他客戶端的日誌輸出都會寫入新客戶端日誌文件。

內的應用程序,我實例化記錄每個日誌是這樣的:

private static final Logger logger = Logger.getLogger(name_of_class.class); 

我如何確保應用程序的早期實例將只記錄到它自己的文件,而不是蔓延到其他客戶端?

+0

客戶端是瀏覽器。您爲瀏覽器即時提供應用程序一次? – 2014-09-04 15:43:18

+0

對不起,應該已經更清楚了。客戶端是使用該應用程序的實際客戶端。 I.e,company1,company2等 – mogoli 2014-09-04 16:02:52

+0

只有一個'Log'文件,您的應用程序正在寫入它。沒有這樣的解決方案可以爲每個客戶端分別提供一個日誌文件(儘管您可以實現它,但這不是日誌文件的目的) – pms 2014-09-04 16:05:31

回答

1

所以我管理解決它。

問題出在命令記錄器歸類後。我所做的是將記錄器聲明移動到由其他類調用的方法。

當該方法被調用時,它實例化一個客戶端即

Logger.getLogger(「CLIENTNAME」)命名的記錄器;

這種方式的輸出總是隻寫入客戶端文件,即使這些類實例化了客戶端記錄器被調用。

感謝您幫助我完成思考過程。