2014-02-18 56 views
3

開始使用新的.NET 4.5 EventSource類來記錄當前正在使用Castle的Logging Facility與log4net結合使用的應用程序的最佳方式是什麼?使用Castle ILogger和log4net遷移到語義日誌記錄

最初我認爲可能擴展Castle的ILogger接口以支持EventSource促進的更豐富的語義風格日誌記錄(Issue raised),但現在我不確定他們是否真的能夠很好地協同工作。

我注意到Semantic Logging Application Block提供了一個使用EventSource的實現,但那當然不使用ILogger。

回答

2

如果您一般想轉移到語義記錄,而不僅僅是SLAB實施,那麼您可能會發現遷移到Serilog更容易。 (免責聲明 - 我開始了這個項目,雖然現在已經成熟了)。

Serilog實現與EventSource和朋友相同的語義記錄概念,但使用從Castle獲得的經典「ILogger」風格的API。

log.Information("The cart contains {CartSize} items", cart.Count); 

這個例子關聯稱爲CartSize與事件的結構化特性,就像你會得到傳遞參數給EventSource方法。 (你甚至可以使用經典{0}數值格式說明,並仍然得到結構性的事件有編號,而不是命名,屬性!)

因爲API是兼容的,從​​到另一個風格將現有的應用程序是小於摩擦將所有內容移植到EventSource s。有幾種方法可以解決這個問題,如果您決定選擇一個選項,我會密切注意任何後續問題。