跨多个项目实现单一的log4net配置文件

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文件,并将其作为链接文件添加到调用程序集中。当应用程序运行时,它从未触及配置。我看到了一些类似的问题,但从未以这种方式设置,希望有人能帮助。

也许这个链接可以帮到你:http://stackoverflow.com/questions/17874999/log4net-for-windows-service/17875059#17875059 - Abhishek Jain
我意识到这比我想象的要复杂一些。我有一个项目正在解决方案中实现log4Net,如上所述,并设置了一个部署项目,其中似乎实际上正在寻找文件以进行配置。由于我使用的是链接文件,我想我需要弄清楚如何从S&D项目中引用它。这里的主要目标是拥有一个单一的配置文件,可以从所有独立的项目中读取。 - TrevorGoodchild
解决了我的问题。在一个Windows服务项目中使用log4net的链接配置文件时,该配置文件的生成操作需要在文件属性中设置为“内容”。然后,在部署项目中,需要将该文件包含在项目输出中。 - TrevorGoodchild
太好了,我认为这个问题会帮助未来的某些人 :) - Abhishek Jain
1个回答

2
当在Windows服务项目中使用一个链接的log4net配置文件时,需要将配置文件的生成操作设置为“内容”(Content)并包含到部署项目的输出文件中。

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