c# - Log4net 不在生产服务器上创建日志文件
问题描述
我知道 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...
有人可以为我澄清为什么它会这样吗?
谢谢!
解决方案
Fildor 提供的答案就像一个魅力。
<file value="E:\Logs\.log" />
<datePattern value="yyyy-MM-dd'_APP'" />
<preserveLogFileNameExtension value="true"/>
它在开发PC上运行良好仍然很奇怪。
推荐阅读
- docker - 如何使用 pod-local 环境变量在 pod 上执行 kubectl 命令?
- jquery - 引导模型 ajax 表单在 MVC 发布后再次在模型主体内加载完整的 ActionResult
- c# - HttpClient.PatchAsync 在 Xamarin.iOS 上引发 PlatformNotSupportedException
- database - Conexion Oracle and ODBC
- oracle - 如何更改交互式网格中过滤器的标签?
- python - 如何让令牌在一段时间后过期?(没有 jwt)
- android-studio - 无法在 Android Studio 3.5.1 中创建语言环境 strings.xml
- xml - XSLT拆分字符串,将它们存储在变量中并输出它们
- javascript - Angular 8 - 处理 http 返回的 observable 时的管道问题
- object - 在处理中导入 .dae 文件