c# - log4net 创建日志文件但不写入

标签 c# windows service windows-services log4net

我正在尝试使用 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/

相关文章:

windows - 如何为重叠窗口设置确切的客户端大小? (winapi)

c - 在CLI环境下访问本地应用程序文件?

android - 即使手机处于 sleep 状态,也要保持服务运行?

php - 通过 HttpURLConnection 将参数和图像上传到 PHP 服务器 (Android)

c# - 在 64 位机器上基于 AnyCPU 与 x64 平台构建的 C# 应用程序的性能

c# - Moq When(Func<bool>) 方法的使用

windows - 从 node.js 启动一个外部应用程序

java - 从 txt 文件发送电子邮件的 JBoss 集群服务

c# - 如何使用反射简化 Linq 扩展方法调用?

c# - 如何设置 My Package.targets 文件以将所有 dll 添加到 bin/debug 或 bin/Release 文件夹中?