Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 跨多个项目共享log4net配置_Asp.net Mvc_Wcf_Log4net - Fatal编程技术网

Asp.net mvc 跨多个项目共享log4net配置

Asp.net mvc 跨多个项目共享log4net配置,asp.net-mvc,wcf,log4net,Asp.net Mvc,Wcf,Log4net,在我的WCF解决方案中,我在该解决方案下有多个项目(16个)。(业务对象、业务层、Windows服务等) 我需要将log4net日志框架集成到所有项目中。 在所有项目中共享一个log4net配置文件的最佳方法是什么。如果您只有一个运行的启动项目(例如,其中只有一个是MVC项目,其余是简单库),则只需要在MVC项目中拥有配置。在每个库中,您仍然可以使用MVC项目的配置 但是,如果您有多个启动项目,则可以将log4net配置为查看app.config之外的单独共享配置文件。例如: <log4n

在我的WCF解决方案中,我在该解决方案下有多个项目(16个)。(业务对象、业务层、Windows服务等)

我需要将log4net日志框架集成到所有项目中。
在所有项目中共享一个log4net配置文件的最佳方法是什么。

如果您只有一个运行的启动项目(例如,其中只有一个是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>
您还可以包括应用程序设置,因此这不是特定于编译的:

<appSettings>
  <add key="lo4gnet.Config" value="C:\test\common.config"/>
</appSettings>

VisualStudio允许您将文件从解决方案级别链接到项目级别。我将使用这种方法而不是path上的硬编码方法

Add > Existing Item > Add As Link
为了清晰起见,请参见图片


所以对于所有项目,我们仍然需要参考log4net?
log4net.Config.XmlConfigurator.Configure(new FileInfo(ConfigurationManager.AppSettings["lo4gnet.Config"]));
Add > Existing Item > Add As Link