【发布时间】:2011-09-13 15:01:57
【问题描述】:
对于用 C# 4 编写的 Windows 服务,我已经配置了 log4net,并且在开发中工作正常。但尚未投入生产。
这是我的配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs/Log.xml"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="100MB"/>
<layout type="log4net.Layout.XmlLayout">
<param name="Prefix" value=""/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="FileAppender"/>
</root>
</log4net>
</configuration>
在我的AssemblyInfo.cs 中,我有:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
当我在本地运行应用程序时,会按预期将内容写入日志。当我在服务器上运行它时,会在正确的路径上创建日志文件,但它仍然是空的。没有一个字符写入日志。
很明显,我的配置正在被提取,因为文件位于正确的位置并具有正确的扩展名。
【问题讨论】:
-
我建议启用内部调试,这意味着如果 log4net 失败,您应该了解原因 - 有关详细信息,请参阅 logging.apache.org/log4net/release/faq.html#internalDebug
-
您找到解决方案了吗? A有同样的问题
-
有点,我从程序集中删除了
[assembly: log4net.Config.XmlConfigurator(Watch = true)]行,只是在应用程序启动时的代码中完成了。
标签: c#-4.0 .net-4.0 windows-services log4net