gpt4 book ai didi

c# - 如何使用 log4net 配置多个日志记录配置?

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:51 24 4
gpt4 key购买 nike

我正在为多个日志文件使用以下 app.config 设置。以下是我的 app.config 设置。但是当我使用“LogFileAppender”设置将日志写入文件时,它也会将日志写入控制台

<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<File value="C:\File1.log" />
<AppendToFile value="true" />
<rollongStyle value="Composite" />
<maximumFileSize value="200MB" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date %messge%newline"/>
</layout>
</appender>

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<File value="C:\File2.log" />
<AppendToFile value="true" />
<rollongStyle value="Date" />
<maximumFileSize value="100MB" />
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date %messge%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="INFO" />
</filter>
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="FATAL" />
</filter>
</appender>

<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value ="ERROR"/>
<foreColor value ="Red"/>
</mapping>
<mapping>
<level value ="WARN"/>
<foreColor value ="Yellow"/>
</mapping>
<layout type="log4net.Layout.PatternLayout">
<ConversionPattern value="%date %messge%newline"/>
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="RollingFile" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
</log4net>

在 C# 代码中,我使用以下方法调用。

    private static readonly log4net.ILog ilogger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

log4net.Config.XmlConfigurator.Configure();

问题:

如何在使用上述 app.config 文件使用 LogFileAppender 时限制控制台日志记录?

最佳答案

添加 ForwardingAppender在根记录器和 ColoredConsoleAppender 之间的配置中,以便您获得此配置

  • root -> LogFileAppender
  • root -> 滚动文件
  • root -> ForwardingAppender -> ColoredConsoleAppender

然后在您的 ForwardingAppender 中添加一个过滤器,它只会让并非源自您不想要的应用程序的事件通过;一个LoggerMatchFilter这是个好主意,因为您可以排除源自所需应用程序的命名空间的记录器。

关于c# - 如何使用 log4net 配置多个日志记录配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27360686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com