2009-11-29 179 views
2

請在使用log4net時幫助我完成此查詢。log4net - 按用戶日誌記錄

我使用log4net在我們的應用程序中。我在配置log4net以在用戶級別記錄錯誤時遇到問題。

也就是說,如果用戶X登錄,我喜歡創建文件名稱X,並且用戶X的所有錯誤都應該寫入X.log。 Siilarly如果Y用戶登錄日誌文件應該是Y.log的名稱,最重要的一點是,他們可以同時登錄。

我試着通過創建日誌文件來運氣,一旦用戶登錄,其名稱將被動態地構建。但是,如果這些日誌文件沒有在同一時間使用該應用程序,那麼日誌文件會使用正確的名稱並按預期方式書寫,但如果兩個用戶都有活動會話,則僅爲首次登錄的用戶創建日誌文件,並在爲FIRST用戶創建的日誌文件中記錄第二個用戶的錯誤。

請幫我這個。

回答

5

必須有更好的解決方案,但您可以從代碼更改log4net配置,甚至可以決定要加載哪個配置文件 - 所以您可以在代碼中執行它,這不如編輯XML文件。

因此,您需要做的是高度不推薦的操作,即每次調用記錄器靜態類時創建log4net配置,並根據調用用戶執行所需操作。

再次......它感覺不對!

(它可能表現不佳)。

另一個更好解決方案是日誌一切數據庫(log4net的支持的話),與用戶的列,然後從生產DB日誌....

+1

1用於登錄到DB。記錄到每個用戶的文件不會擴展。 – tvanfosson 2009-11-29 16:20:08

+1

用於登錄到數據庫的+1。海事組織這是正確的路要走。沒有併發/可伸縮性問題和乾淨的即用型log4net使用。 – 2009-12-02 08:16:03