8

web.config の構成を使用して、ログから INFO を除外し、DEBUG と ERROR のみを表示する方法はありますか?

<root>
<level value="DEBUG" />
<appender-ref ref="ColoredConsoleAppender" />
<appender-ref ref="RollingFileSystemAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
4

2 に答える 2

11

log4X には、メッセージをフィルタリングするためにアペンダーに適用できるフィルターがあります。ここにフィルターのリストがあります

  • log4net.Filter.LevelMatchFilter 特定のログ レベルに一致するログ イベントをフィルター処理します。または、特定のログ レベルに一致しないイベントをフィルタリングするように構成できます。
  • log4net.Filter.LevelRangeFilter LevelMatchFilter と似ていますが、単一のログ レベルをフィルタリングする代わりに、連続したレベルの包括的な範囲でフィルタリングする点が異なります。
  • log4net.Filter.LoggerMatchFilter ログ イベントの発信元のロガー オブジェクトの名前に基づいてログ イベントをフィルター処理します。
  • log4net.Filter.StringMatchFilter ログ メッセージに対する文字列または正規表現の一致に基づいて、ログ イベントをフィルタリングします。
  • log4net.Filter.PropertyFilter 特定のコンテキスト プロパティに対する値または正規表現の一致に基づいて、ログ イベントをフィルタリングします。
  • log4net.Filter.DenyAllFilter アペンダー のすべてのロギング イベントを効果的に削除します。

あなたの場合、レベルを除外するために 3 つのアペンダーをフィルタリングする必要があります:レベルログをINFO拒否する LevelMatchFilter は機能します:INFO

<filter type="log4net.Filter.LevelMatchFilter">
  <acceptOnMatch value="false" />
  <levelToMatch  value="INFO" />
</filter>
于 2014-04-07T08:59:56.070 に答える
5

<filter>タグは (上記の例に示されているように) タグ内に表示する必要があることに注意してください<appender>。たとえば、(これは有効な log4net 構成ではありません。<filter>タグが以下の子エントリである方法のみを示してい<appender>ます。

<configuration>
  <configSections>
    <section ...="" />
  </configSections>
  <startup>
    <supportedRuntime ...="" />
  </startup>
  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{dd MMM yyyy HH:mm:ss} {%thread} %level - %message%newline%exception"/>
      </layout>
      <filter type="log4net.Filter.LevelMatchFilter">
        <acceptOnMatch value="true" />
        <levelToMatch  value="INFO" />
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />
    </appender>
    <root>
      <appender-ref ...="" />
    </root>
    <logger name="Log4NetTest.OtherClass">
      <level value="DEBUG"/>
      <appender-ref ref="ConsoleAppender"/>
    </logger>
  </log4net>
</configuration>
于 2016-06-23T14:18:16.917 に答える