log4net创build日志文件,但不写入它

我正在尝试使用Windows服务的基本日志logging。

我添加了对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被创build,但没有写入任何内容。

我一整天都在通过论坛来追踪这个问题,但是如果我忽略了已经发布的解决scheme,我很抱歉。

你的过滤器级别看起来是在<levelMin value="INFO" />上配置的,但是你正在测试一个log.Debug消息。 将您的配置更改为<levelMin value="DEBUG" />然后重试。 如果这不能解决它,也可能有其他配置问题。

您需要一个最低级别的INFO ,并尝试使用级别DEBUG记录消息。 正如你可以在文档(http://logging.apache.org/log4net/release/manual/introduction.html)中看到的那样&#xFF0C; DEBUG的优先级低于INFO所以你的消息被过滤掉了。