2014-03-01 28 views
3

我是第三方服務的C#開源代碼包裝器的作者。我需要公開一個ILogger工具(如https://logging.apache.org/log4net/release/sdk/log4net.Core.ILogger.html)來記錄特定的事件和錯誤。以鬆散耦合的方式暴露ILogger

我可以繼續添加一個主要的記錄器,如Log4Net,但我不希望封裝器綁定到特定的記錄器。

我可以只添加一個IoC容器,用構造函數依賴注入來輕鬆解決這個問題,但是接下來我不希望我的包裝被綁定到任何特定的IoC。

另一方面,如果我能以某種方式將記錄事件暴露給消費應用程序(這是一個負責記錄的應用程序),那麼包裝程序對消費者不可知是很棒的。

有關如何實現此目的的任何想法?

+0

爲什麼地球上會有人低估這個問題?態度很好,夥計們。 –

回答

1

項目往往會提供自己的抽象。默認的記錄器捆綁在一起,所以這些東西可以直接使用,但是您可以輕鬆配置日誌記錄提供程序,如ServiceStack loggingNServiceBus logging所示。例如:

LogManager.LogFactory = new Log4NetFactory(true); 

還有Common.Logging,其目的是解決日誌框架的依賴問題。但是,儘管已經有一段時間了,但我還沒有看到它在各大開源項目中廣泛使用。