我正在尝试使用我在其他几个答案中汇总的解决方案。基本上我正在尝试将一个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文件,然后将其作为链接文件添加到调用程序集中。当应用程序运行时,它永远不会命中配置。我已经看到了几个类似的问题,但它从未以这种方式设置,希望有人可以提供帮助。
答案 0 :(得分:2)
在Windows服务项目中使用log4net的链接配置文件时,需要在文件的属性中将配置文件的构建操作设置为“内容”。从那里,在部署项目中,文件需要包含在项目输出中