2013-12-18 181 views
3

在我的WCF解決方案中,我有多個項目(16)在此解決方案下。 (業務對象,業務層,Windows服務等)跨多個項目共享log4net配置

我需要將log4net日誌框架集成到所有項目中。 在所有項目中共享一個log4net配置文件的最佳方法是什麼?

回答

4

Visual Studio允許您將文件從解決方案級別鏈接到項目級別。我會在路徑上的硬編碼方法上使用這種方法。

Add > Existing Item > Add As Link 

查看清晰圖像。

Add As Link

+0

所以我們仍然需要引用log4net的所有項目? – Antoops

4

如果您只有一個運行的啓動項目(例如,其中只有一個是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&gt; %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"]));