对于用C#4编写的Windows服务,我配置了log4net并且在开发中正常工作。但不在生产中。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的失败,你应该明白为什么 - 详见http://logging.apache.org/log4net/release/faq.html #internalDebug – sgmoore
您是否找到解决方案? A有同样的问题 –
排序,我从程序集中删除了'[assembly:log4net.Config.XmlConfigurator(Watch = true)]'行,并在应用程序启动时在代码中完成。 –