在我的WCF解決方案中,我有多個項目(16)在此解決方案下。 (業務對象,業務層,Windows服務等)跨多個項目共享log4net配置
我需要將log4net日誌框架集成到所有項目中。 在所有項目中共享一個log4net配置文件的最佳方法是什麼?
在我的WCF解決方案中,我有多個項目(16)在此解決方案下。 (業務對象,業務層,Windows服務等)跨多個項目共享log4net配置
我需要將log4net日誌框架集成到所有項目中。 在所有項目中共享一個log4net配置文件的最佳方法是什麼?
Visual Studio允許您將文件從解決方案級別鏈接到項目級別。我會在路徑上的硬編碼方法上使用這種方法。
Add > Existing Item > Add As Link
查看清晰圖像。
如果您只有一個運行的啓動項目(例如,其中只有一個是MVC項目,其餘是簡單庫),則只需要在MVC項目中具有該配置。在每個庫中,您仍然可以使用MVC項目的配置。
但是,如果您有多個啓動項目,則可以將log4net配置爲查看app.config之外的單獨共享配置文件。例如:
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{hh:mm:ss tt} %level> %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="ConsoleAppender"/>
</root>
</log4net>
在項目:
log4net.Config.XmlConfigurator.Configure(new FileInfo(@"C:\test\common.config"));
可以包括一個應用程序的設置以及因此這是不特定的編譯:代碼
<appSettings>
<add key="lo4gnet.Config" value="C:\test\common.config"/>
</appSettings>
配置:
log4net.Config.XmlConfigurator.Configure(new FileInfo(ConfigurationManager.AppSettings["lo4gnet.Config"]));
所以我們仍然需要引用log4net的所有項目? – Antoops