log4net-configuration – 跨多个项目实现单个log4net配置文件

我正在尝试使用我从其他几个答案中汇总的解决方案.基本上我正在尝试将一个log4net配置文件用于具有多个项目的解决方案.

这是我的配置文件:

<?xml version="1.0" ?>
  <log4net>
    <appender name="FileMonitorAppender" type="log4net.Appender.FileAppender">
      <file type="log4net.Util.PatternString" value="C:\Documents and Settings\user1\My Documents\My Box Files\FOBS\logs\Box File Monitor %date{MM.dd.yyyy'_'hh.mm.ss''}.txt" />
      <appendToFile value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <header value="[START: Box File Monitor Run %date]%newline" type="log4net.Util.PatternString" />
        <conversionPattern value="%date{HH:mm:ss} - %-5level- %message%newline" />
        <footer value="[END: Box File Monitor Run]" />
      </layout>
    </appender>

    <root>
      <level value="ALL"/>
      <appender-ref ref="FileMonitorAppender" />
    </root>
  </log4net>

这是我在代码中调用记录器的地方:

private static readonly ILog _log = LogManager.GetLogger("Duke.Mobile.FileMonitorAutomation.FileMonitor");

我也在调用程序集中有这个,它应该配置记录器:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

我在解决方案文件夹中有log4net.config文件,然后将其作为链接文件添加到调用程序集中.当应用程序运行时,它永远不会命中配置.我已经看到了几个类似的问题,但它从未以这种方式设置,希望有人可以提供帮助.

最佳答案 在Windows服务项目中使用log4net的链接配置文件时,需要在文件的属性中将配置文件的构建操作设置为“内容”.从那里,在部署项目中,文件需要包含在项目输出中

点赞