我正在尝试使用 Windows 服务的基本日志记录。
我添加了对 log4net 的引用。
我在 AssemblyInfo.cs 中添加了以下内容:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
我将以下内容添加到我的 App.config 中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" requirePermission="false" />
</configSections>
<!-- Log4net Logging Setup -->
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<file value="c:\\CGSD\\log\\logfile.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="FATAL" />
</filter>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="RollingFileAppender"/>
</root>
</log4net>
</configuration>
我的服务中有以下代码:
log4net.Config.XmlConfigurator.Configure();
log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));
log.Debug("test");
文件 c:\CGSD\log\logfile.txt
已创建,但未向其中写入任何内容。
我一整天都在浏览论坛,试图找到这个问题,但如果我忽略了一个已经发布的解决方案,我深表歉意。
最佳答案
您的过滤器级别看起来配置在 <levelMin value="INFO" />
但你正在测试 log.Debug
信息。将您的配置更改为 <levelMin value="DEBUG" />
然后再试一次。如果这不能解决问题,则可能还有其他配置问题。
关于c# - log4net 创建日志文件但不写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13388627/