如何过滤应用程序中的日志记录?

How to filter log records in an application?

我有一个带有 log4net 的 WinForms 应用程序。 app.config 有一个 log4net 配置部分。它包含这样的设置:

<appender name="coloredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="INFO" />
        <levelMax value="FATAL" />
      </filter>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %m%n" />
      </layout>
    </appender>

但是用户想通过 GUI 菜单更改 levelMin 和 levelMax,因为编辑 app.config 文件并不方便。 如何更改应用程序中的 levelMin 和 levelMax 值?

log4net 可以通过配置文件进行配置,稍后应用程序可以像这样更正参数:

Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
hierarchy.Root.Level = Level.Error;
hierarchy.Configured = true;