【问题标题】:Log4net RollingFileAppender not writing when application runs as a service当应用程序作为服务运行时,Log4net RollingFileAppender 不写入
【发布时间】:2020-07-15 16:21:36
【问题描述】:

我有一个 C# 应用程序,它可以作为控制台应用程序或服务在 Windows 10 上运行,具体取决于配置参数。我正在使用 log4net RollingFileAppender 编写日志消息。我正在使用 log4net 4.5 版。当应用程序作为控制台应用程序运行时,滚动文件会按预期写入。当它作为服务运行时,文件不会被写入。如何获取日志文件?

这是配置文件:

<?xml version="1.0" encoding="utf-8"?>
<log4net>

  <appender name="TimedFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="c:/misc/HotspotControlService.log" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd.lo\g" />
      <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date - %message%newline" />
      </layout>
  </appender>

  <root>
    <level value="DEBUG" />
    <appender-ref ref="TimedFileAppender" />
  </root>

</log4net>

【问题讨论】:

  • 服务是否对该文件夹/文件具有读/写权限?
  • 我相信确实如此。它在本地系统帐户下运行,并且我已确认该帐户对其写入的文件夹具有完全控制权。

标签: log4net


【解决方案1】:

像往常一样,我自己的白痴是问题所在。我在程序中用裸文件名指定了配置文件,没有给出文件夹。该文件与我的可执行文件存在于同一文件夹中。但是当作为服务运行时,工作文件夹不是可执行文件夹所在的文件夹。我使用了配置文件名的绝对路径,它工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多