首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4net AdoNetAppender与RollingFileAppender冲突导致文件重复

Log4net AdoNetAppender与RollingFileAppender冲突导致文件重复
EN

Stack Overflow用户
提问于 2015-01-02 15:29:27
回答 1查看 462关注 0票数 0

我们让WebAPI项目在IIS中的ASP.NET MVC web应用程序下运行。我们基本上使用log4net在WebAPI中将信息记录到文本文件(使用rollingfileappender),在ASP.NET MVC应用程序中,我们使用AdoNetAppender记录数据库中所有必需的内容。我们正在观察创建的重复日志文件,例如FULL_December_26_2014.logFULL_December_26_2014.logFULL_December_26_2014.log,但情况不应该是这样的,因为我们托管在单个IIS上,并且允许应用程序使用单个工作进程。我们在RollingFileAppender的两个实例中都看到了这个问题,即一个是完整的,另一个是摘要的。

以下是为简洁起见删除的AdoNetAppender参数部分:

代码语言:javascript
复制
<log4net debug="true">
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
      <bufferSize value="1" />
      <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      <connectionString value="Data Source=DS;Initial Catalog=IC;Persist Security Info=True;User ID=UI;Password=*******;MultipleActiveResultSets=True" />
      <commandText value="INSERT INTO Log ([Date],[Level],[Logger],[User],[Message],[Exception],[DSSessionID],[LocationID], [UserID], [Method], [Status]) VALUES (@log_date, @log_level, @logger, @user, @message, @exception,@DSSessionID, @LocationID, @UserID, @Method, @Status)" />
    </appender>
  <appender name="Full" type="log4net.Appender.RollingFileAppender">
      <file value="F:\logs\Dev3\" />
      <rollingStyle value="Date"/>
      <datePattern value="'EpicBPA_FULL_'MMMM_dd_yyyy'.log'"/>
      <appendToFile value="true" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date - %message%newline" />
      </layout>
    </appender>
      <appender name="Summary" type="log4net.Appender.RollingFileAppender">
        <file value="F:\logs\Dev3\" />
        <rollingStyle value="Date" />
        <datePattern value="'SUMMARY_'MMMM_dd_yyyy'.log'"/>
        <appendToFile value="true" />
        <maxSizeRollBackups value="5" />
        <maximumFileSize value="10MB" />
        <staticLogFileName value="false" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date{dd MMM yyyy HH:mm:ss}  - %message%newline" />
        </layout>
    </appender>
    <root>
      <priority value="ALL" />
      <level value="DEBUG" />
      <appender-ref ref="AdoNetAppender" />
    <appender-ref ref="Full" />
    </root>
    <category name="my.category">
      <priority value="DEBUG" />
    </category>
  <logger additivity="false" name="Summary">
          <level value="DEBUG"/>
          <appender-ref ref="Summary" />
      </logger>
  </log4net>

有人能指点我这是怎么回事吗?当发生任何错误或异常时,AdoNetAppender (负责登录MVC应用程序)似乎会写入RollingFileAppender的文件。但是为什么呢?

EN

回答 1

Stack Overflow用户

发布于 2022-05-03 11:16:12

您的文件用于其他进程,这就是原因,请验证您没有复制log4net实例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27744463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档