在多个项目中共享log4net配置

5
在我的WCF解决方案中,我有多个项目(16个)在此解决方案下(业务对象,业务层,Windows服务等)。
我需要将log4net日志框架集成到所有项目中。 最好的方法是拥有一个log4net配置文件,在所有项目之间共享。
2个回答

7

Visual Studio允许您在解决方案级别向项目级别链接文件。相比硬编码路径的方法,我更建议使用这种方法。

Add > Existing Item > Add As Link

请看图片以获得更清晰的信息。
请看下面的图片:添加为链接

那么对于所有的项目,我们仍然需要引用log4net吗? - Anto Varghese

5
如果您只有一个启动项目(例如只有一个是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"]));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接