2011-05-19 25 views
4

道歉,如果我忽視它,但我不能立即在SO上找到類似的問題。[在此插入您最喜愛的日誌記錄庫]在System.Diagnostics.Trace上的優點是什麼?

.Net帶有一些內置的日誌功能(本質上是System.Diagnostics.Debug和System.Diagnostics.Trace)。

在典型的LOB應用程序中是否有一個很好的理由不使用這些內置設施進行日誌記錄,而是使用log4net,NLog,EntLib日誌塊或[在此插入您最喜歡的日誌記錄庫]?

編輯:請注意,我更感興趣的是查明System.Diagnostics w.r.t的缺點。日誌記錄功能,而不是不同日誌記錄庫的功能。

回答

2

能夠將日誌發送到多個端點(系統日誌,數據庫,事件日誌等)可能很有用。

+0

這是不可能的System.Diagnostics程序? TraceListeners怎麼樣?關於日誌級別: – jeroenh 2011-05-19 12:43:57

1

我使用log4net,它的優點是在配置文件中,您可以選擇需要的日誌級別(嚴重,錯誤,警告,信息,調試),並且免費獲得電子郵件日誌和滾動日誌文件等內容。

+0

:Diagnostics.Trace不可能如何實現?這裏有不同的級別,對(TraceInformation,TraceWarning,...) – jeroenh 2011-05-19 12:46:21

+0

快速搜索發現有幾個SMTP tracelisteners可用(EntLib中只有一個);雖然我使用log4net給出了它。 – jeroenh 2011-05-19 12:47:44

+0

@jeroenh:我沒有意識到這一點。 – 2011-05-19 12:52:30

3

我更喜歡使用NLOG或log4net的,因爲它給了我:

  1. 記錄的目標。我可以選擇最適合特定的目的沒有改變日誌代碼的任何位
  2. 我可以登錄,我需要一定的情況下由於在對數級的信息
  3. 我可以格式化我的日誌條目我喜歡的方式,也可在不同對於diferent方式瞄準
  4. 表現也相當好,感謝批量
  5. 我不是發明輪子
  6. 我可以reause很多次
+0

這些項目中的大部分還包括System.Diagnostics.Trace,不是嗎? – jeroenh 2011-05-19 12:48:48

+1

@jeroenh。對於1:使用NLog,你有超過20個目標在盒子外面。使用Trance:你可以自己實現更多,但是它是猴子編碼。對於第二種:我可以在不重新編譯代碼的情況下管理souce-> target,如果可能使用Trace,現在不要使用它。第三名:跟蹤Formaters?對於第4位:跟蹤應該在生產環境中由於性能原因而被禁用。第五:編寫你自己的TraceListeners,你是在做猴子編碼。第六:這取決於你的實施。 – Dariusz 2011-05-19 13:10:17

相關問題