log4net 创建日志文件但不写入

Posted

技术标签:

【中文标题】log4net 创建日志文件但不写入【英文标题】:log4net creates log file but does not write to it 【发布时间】:2012-11-03 12:40:06 【问题描述】:

我正在尝试将基本日志记录用于 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 已创建,但没有写入任何内容。

我整天都在论坛中试图找到这个问题,但如果我忽略了一个已经发布的解决方案,我深表歉意。

【问题讨论】:

如果你在 log.Debug 行中放了一个断点,你会到达那一行吗? 【参考方案1】:

您的过滤级别似乎配置为&lt;levelMin value="INFO" /&gt;,但您正在测试log.Debug 消息。将您的配置更改为&lt;levelMin value="DEBUG" /&gt;,然后重试。如果这不能解决它,可能还有其他配置问题。

【讨论】:

做到了。我更改了 ,现在我可以在我的日志文件中看到条目。【参考方案2】:

您需要最低级别 INFO 并尝试记录级别为 DEBUG 的消息。正如您在文档(http://logging.apache.org/log4net/release/manual/introduction.html)中看到的,DEBUG 的优先级低于INFO,因此您的消息被过滤掉了。

【讨论】:

做到了。我更改了 ,现在我可以在我的日志文件中看到条目。

以上是关于log4net 创建日志文件但不写入的主要内容,如果未能解决你的问题,请参考以下文章

外部 dll 调用后 log4net 写入错误的日志文件

Log4Net 正在创建文件但未写入文件

使用了log4net,发布系统后,发现无法写日志了,怎么办

Log4net 在记录几秒钟后将日志路径更改为安装文件夹。这是为啥?

log4net 将在哪里创建此日志文件?

log4net无法输出日志