2010-01-20 64 views
1

我想看看這些appender哪一個表現更好(時間越短越好)。log4net:比較adonetappender和rollingfileappender

RollingFileAppender或ADONetAppender?

選擇appender時我應該考慮哪些其他參數?

我看到我的WebServer「擱置」到滾動文件。在我的滾動文件附加器:(在log4net documentation FileAppender部分參考),使多個應用程序/服務器可以寫入同一個文件,我可以設置類似

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 

我們的數據庫服務器在SAN驅動器,但該日誌文件將在當地寫入硬盤驅動器(或可能在不久的將來,一個SAN驅動器)

回答

2

我們使用滾動文件Appender的運氣比較好。我們注意到,如果出現網絡故障,ADO.NET appender會停止記錄。例如,每週安裝一次服務包後重新啓動會導致您的記錄器死機。

請記住,也意味着保持你的日誌在同一臺服務器上,如果你是文件的appender去 - http://ferventcoder.com/archive/2009/07/16/log4net-note-always-keep-your-logs-on-the-same-server.aspx

我從來沒有見過的最小的鎖定機制。它確實看起來像你會支付一些性能處罰,如果你使用它:http://logging.apache.org/log4net/release/sdk/log4net.Appender.FileAppender.MinimalLock.html

+0

有趣的觀點。我認爲登錄到數據庫會更快,更容易(考慮到多個應用程序將登錄到同一個接收器) – ram 2010-01-22 23:16:22

+0

我們在想同一件事。如果您可以將您的數據庫保存在同一臺服務器上,那麼可能要走。儘管如此,我們並沒有將數據庫保存在與我們的應用程序相同的服務器上,所以它不適合我們。 – ferventcoder 2010-01-27 13:38:56

0

我通常使用RollingFileAppender到本地磁盤 - 這是健壯和快速(如果你不能寫入本地磁盤,你通常有致命的問題)。

寫入ADO.NET可能會失敗 - 例如,如果在應用程序運行時日誌記錄數據庫已脫機備份。

我也會避免使用MinimalLock,因爲性能開銷 - 而是爲每個應用程序都有單獨的日誌文件。如果偶爾需要查看合併日誌數據,則可以合併日誌的相關部分,或者只需在查看器中並排打開相關部分。

3

如果您ADONetAppender失去了連接,它將停止記錄,但與選項

<reconnectonerror value="true" /> 

它會嘗試重新連接。

相關問題