我们让WebAPI项目在IIS中的ASP.NET MVC web应用程序下运行。我们基本上使用log4net在WebAPI中将信息记录到文本文件(使用rollingfileappender),在ASP.NET MVC应用程序中,我们使用AdoNetAppender记录数据库中所有必需的内容。我们正在观察创建的重复日志文件,例如FULL_December_26_2014.log和FULL_December_26_2014.logFULL_December_26_2014.log,但情况不应该是这样的,因为我们托管在单个IIS上,并且允许应用程序使用单个工作进程。我们在RollingFileAppender的两个实例中都看到了这个问题,即一个是完整的,另一个是摘要的。
以下是为简洁起见删除的AdoNetAppender参数部分:
<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的文件。但是为什么呢?
发布于 2022-05-03 11:16:12
您的文件用于其他进程,这就是原因,请验证您没有复制log4net实例
https://stackoverflow.com/questions/27744463
复制相似问题