4

我正在尝试使用我从这里的其他几个答案中汇总的解决方案。基本上,我正在尝试将一个 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 文件,然后将其作为链接文件添加到调用程序集中。当应用程序运行时,它永远不会命中配置。我见过几个类似的问题,但从来没有完全这样设置,希望有人能提供帮助。

4

1 回答 1

2

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

于 2013-08-20T17:47:53.653 回答