asp.Net   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net – Log4net可以有多个appender写入同一个文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用RollingFileAppender将一些信息记录到具有每个日志部分的头部的转换模式(在web.config中)的文件中:
<conversionPattern value="%date - %property{userID} - %property{methoD}%newline--------------------------------%newline%message%newline%newline"/>

我想在这个标题下记录细节作为项目符号。我正在尝试使用另一个RollingFileAppender,它使用简单的转换模式记录到同一个文件,只需一个破折号,如下所示:

<conversionPattern value="- %message%newline"/>

但是,这些消息并不会导入到日志文件中。我使用Log.Info()作为头和Log.Debug()的子弹点,并对其各自的日志级别过滤每个appender。我正在努力做什么?还是有更好的方法来获取标头和详细信息到log4net的日志文件?

解决方法

是的,您可以有两个log4net appender追加(写)到同一个日志文件。

您需要在每个Appender中放置以下行:

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

这将使log4net使用最小的锁定模型,允许多个进程写入同一个文件。

以下是使用两个追加器写入同一个日志文件的示例XML:

<log4net debug="false">
<appender name="RollingLogFileAppender1" type="log4net.Appender.RollingFileAppender">
  <!-- this configures a log for the application messages -->
  <file value="TestLog.log" />
  <appendToFile value="true" />
  <!-- next line uses a minimal locking model that allows multiple processes to write to the same file -->
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <rollingStyle value="Size" />
  <maxSizeRollBACkups value="10" />
  <maximumFileSize value="10MB" />
  <staticLogFilENAME value="true" />
  <!-- make the most recent log the highest numbered log -->
  <countDirection value="1" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-5level %date{MM-dd-yyyy HH:mm:ss.ff} [%property{NDC}] %message%newline [Thread: %thread] %c{1} Method:%method(%file{1},Line:%linE) %newline" />
  </layout>
  <!-- The following two filters insure only log requests of 
        version '1' use this Appender -->
</appender>
<appender name="RollingLogFileAppender2" type="log4net.Appender.RollingFileAppender">
  <file value="TestLog.log" />
  <appendToFile value="true" />
  <!-- next line uses a minimal locking model that allows multiple processes to write to the same file -->
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <rollingStyle value="Size" />
  <maxSizeRollBACkups value="10" />
  <maximumFileSize value="10MB" />
  <staticLogFilENAME value="true" />
  <!-- make the most recent log the highest numbered log -->
  <countDirection value="1" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-5level %date{MM-dd-yyyy HH:mm:ss.ff} [%property{NDC}] [Thread: %thread] %c{1} Method:%method(%file{1},Line:%linE) %newline%message" />
  </layout>
</appender>
<root>
  <level value="DEBUG" />
  <appender-ref ref="RollingLogFileAppender1" />
  <appender-ref ref="RollingLogFileAppender2" />
</root>

这可以在这里的Apache文档中找到:
Apache Log4Net Docs
只需在此页面上搜索“同一文件”即可。

希望这可以帮助。

大佬总结

以上是大佬教程为你收集整理的asp.net – Log4net可以有多个appender写入同一个文件?全部内容,希望文章能够帮你解决asp.net – Log4net可以有多个appender写入同一个文件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。