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

Posted

技术标签:

【中文标题】Log4net 在记录几秒钟后将日志路径更改为安装文件夹。这是为啥?【英文标题】:Log4net changing the log path to installation folder after logging for few seconds. Why is that?Log4net 在记录几秒钟后将日志路径更改为安装文件夹。这是为什么? 【发布时间】:2021-09-10 02:04:05 【问题描述】:

我正在使用 log4net 来创建我的应用程序的日志。我的一位客户报告说,从几天开始,日志就没有写入日志文本文件。当我彻底解决问题时,我发现日志被记录到给定位置几秒钟,然后日志路径自动更改为安装文件夹,然后继续。

我的配置是这样的

 <appender name="MessageRollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Logs\log.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <encoding value="utf-8" />
      <maxSizeRollBackups value="2" />
      <maximumFileSize value="5MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message%newline%newline" />
      </layout>
    </appender>

预定义的日志路径设置为

C:\Users\testuser\AppData\Roaming

如果我将 log.txt 路径更改为下载文件夹。不会有问题。 我检查了。没有权限问题。就像我说的那样,日志恰好写了几秒钟。

应用程序中没有错误。这是 C# 独立应用程序。为什么会发生这种路径转换?

【问题讨论】:

【参考方案1】:

检查 logger 的根标签是否指向你的 appender 名称,

 <root>
      <level value="ALL"/> 
      <appender-ref ref="MessageRollingFileAppender"/>
 </root>

另外,请确保检查生成的文件的大小,如果写入了更多日志(发生在应用程序开始抛出错误并且您正在记录所有异常详细信息时) 那么这可能是要处理的问题可能是通过将日志 level 限制为仅需要的 error 消息。

作为第二次检查,检查您是否已将记录器 path 配置为更正 log4net 配置文件。

【讨论】:

以上是关于Log4net 在记录几秒钟后将日志路径更改为安装文件夹。这是为啥?的主要内容,如果未能解决你的问题,请参考以下文章

在将jquery更改为3.1.1之后,在IE 10中页面加载后几秒钟内页面没有响应

log4net服务启动后没有记录日志

如何使用 log4net 日志框架

ELK开发部署:安装Elasticsearch组建单服务器多节点集群

Log4net

ELK日志框架:安装Elasticsearch组建单服务器多节点集群