Common.Logging 有什麼替代品嗎?[關閉]
編輯:Common.Logging 2.1.1 於 2012 年 6 月 9 日發布,Github 頁面相當活躍,作者特別評論了項目的健康狀況。
我們正在考慮在一個新的 .NET 項目中使用Common.Logging,但我有點擔心該項目似乎已變得不活動。首頁最後一次更新是在 2009 年,SourceForge 上的最新版本是在 2010 年創建的。我已經發現與 NLog 2 不兼容,我擔心隨著時間的推移這可能會成為一個更大的問題。我注意到 Enterprise Library 5.0 沒有被列為兼容但我沒有嘗試過。
是否有任何其他替代方案可以提供類似的通用介面?
我已經使用 Common.Logging 四年了,我可以將它與 NLog2 一起使用。要徹底回答您的問題,我們需要先仔細查看 Common.Logging。Common.Logging 為您帶來兩個好處:
- 從 1.x 開始,Common.Logging 允許您編寫獨立於日誌框架的應用程序。因此,您可以輕鬆地從一個日誌記錄框架更改為另一個,甚至無需重新編譯您的應用程序。這對於開發通用庫特別有用,它可以被使用不同日誌框架的各種應用程序使用。
- 從 2.x 開始,Common.Logging 允許您聚合來自各種日誌框架的日誌資訊。假設我們正在開發一個應用程序並且想要利用兩個第 3 部分庫,比如 A3rd.dll 和 B3rd.dll。A3rd.dll 使用 log4net,但 B3rd.dll 使用 NLog。現在如何將 A3rd.dll 和 B3rd.dll 的日誌資訊整合到一個日誌文件(或日誌監控系統)中?Common.Logging 可以提供幫助,例如,它可以從 NLog 擷取日誌消息並將其發送到 log4net,然後讓 log4net 將其寫入日誌文件或將其發送到 log4net 可以執行的任何位置。
現在,回到 NLog2。NLog2 中的日誌記錄 API 向後兼容 NLog1,但配置和目標的 API 發生了變化。因此,如果您只需要將日誌消息發送到 NLog2,您可以簡單地進行程序集重定向(請參閱我的答案:Can NLog v2 與 Common.Logging 一起使用)。
話雖如此,如果您想使用 Common.Logging 將 NLog2 消息聚合到其他日誌框架,則程序集重定向方法將不起作用。必須創建一個 NLog2 特定的適配器。
就像@Kugel 所說,不活躍可能意味著穩定和成熟。由於 Common.Logging 與各種日誌框架一起工作,因此不太可能在每次受支持的日誌框架發佈時發布新版本。否則,它可能比幫助更混亂。因此,應始終首先考慮程序集重定向。只有當確實出現不兼容問題時,就像我提到的 NLog2 消息重定向,發送電子郵件到郵件列表,我相信有人會介入並提供幫助。
乾杯,肯尼斯