2009-07-21 36 views
0

我需要構建點擊和轉換跟蹤(比IIS日誌文件更具體和更專注)到現有網站。我期待着相當高的負荷。我調查了使用log4net,特別是FileAppender Class,但文檔明確指出:「這種類型對多線程操作不安全。」高負載網站日誌記錄文件的方法?

有人可以建議一個強大的方法來解決這種類型的重型伐木?我非常喜歡log4net給我的靈活性。我是否可以利用lock解決缺乏安全的多線程問題?這是否會引入性能/爭用問題?

回答

1

雖然FileAppender本身可能不安全的日誌記錄,我當然期望通過log4net它的正常訪問路由是線程安全的。

FAQ

  • log4net的是線程安全的。

換句話說,主要的log4net框架有足夠的鎖定,或者它有專門的日誌線程爲日誌消息的生產者/消費者隊列提供服務。

任何不是線程安全的日誌框架都不會存活很長時間。

0

我對這個答案也很感興趣,但是我會告訴你當我試圖找到解決方案時被告知的。

一個簡單的方法就是使用類似SQL數據庫的東西。如果您想要的數據不適合這種情況,您可以讓每個頁面都可以寫入自己的日誌文件,然後定期合併日誌文件。

但是,我確定有更好的解決方案。

1

您可以查看Microsoft企業庫中提供的日誌應用程序塊。它提供了大量不同類型的記錄器,以及一個方便的GUI配置器,您可以指向您的app.config \ web.config以修改它。所以不需要自己篩選XML。

下面是一個很好的教程鏈接如何獲得它開始:

http://elegantcode.com/2009/01/20/enterprise-library-logging-101/

0

使用系統日誌,你不會是具有任何線程問題。 Syslog,使用UDP將loglines發送到logdaemon(可能在同一臺機器上)。

因爲所有日誌行都彙總在1個查看工具中,所以如果您擁有更多正在運行的進程/服務,它尤其適用。

如果你期望真的很重的負載,看看如何從Facebook的傢伙做到這一點:http://developers.facebook.com/scribe/你可以使用他們的開源logtool。我認爲你還沒有達到他們的負擔,所以你應該安全一段時間!

R