Log4net不在生产服务器上创建日志文件

时间:2018-11-07 09:32:09

标签: c# log4net log4net-configuration log4net-appender

我知道在Stack Overflow上已经有很多log4net问题,但是它们似乎无法解决我的特定问题。

下面的log4net配置用于我的应用程序。

<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="E:\Logs\" />
    <datePattern value="yyyy-MM-dd'_APP.log'" />
    <appendToFile value="true" />
    <immediateFlush value="true" />
    <rollingStyle value="DATE" />
    <staticLogFileName value="false" />
    <maxSizeRollBackups value="10" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date||%2thread||%-5level||%logger||%message%newline" />
    </layout>
  </appender>
</log4net>

我遗漏了一些没意思的部分。使用此配置,应用程序不会登录生产服务器。在我的本地开发PC上,它运行正常。启用log4net调试模式后,我看到它无法访问“ E:\ Logs \”目录,因为访问被拒绝。

我已经向该文件夹添加了所有必需的权限。现在这是我没有得到的部分。经过一些调试后,我发现在标签中的\后面附加了一些内容,这突然起作用了。因此,以下配置可以正常工作。

<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="E:\Logs\x" />
    <datePattern value="yyyy-MM-dd'_APP.log'" />
    <appendToFile value="true" />
    <immediateFlush value="true" />
    <rollingStyle value="DATE" />
    <staticLogFileName value="false" />
    <maxSizeRollBackups value="10" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date||%2thread||%-5level||%logger||%message%newline" />
    </layout>
  </appender>
</log4net>

这将创建一个日志文件x2018-11-07_APP.log,但我不想附加x ..​​.

有人可以为我澄清为什么会这样吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

菲尔多(Fildor)提供的答案就像一个魅力。

<file value="E:\Logs\.log" /> 
<datePattern value="yyyy-MM-dd'_APP'" /> 
<preserveLogFileNameExtension value="true"/>

在开发PC上运行正常仍然很奇怪。