項目
Filter¶
この設定はAppenderで設定可能です。<filter> で設定します。Filterは、以下の役割を担います。
- ログ出力時に出力先に対してそのメッセージを出力するかの判定
この設定は <filter> を複数記述することで複数指定可能です。複数指定を行った場合、上から記述を行った順番に判定を行います。以下は「ConsoleAppender」にFilterを指定した場合の im_logger.xml の例です。<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>DENY</onMatch> </filter> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>DENY</onMatch> </filter> <encoder> <outputPatternAsHeader>true</outputPatternAsHeader> <pattern>[%level] %logger{10} - [%X{log.message.code}] %msg%n</pattern> </encoder> </appender> </configuration>この例では、以下のFilterが設定されています。
- ログレベルWARNであるログメッセージを拒否する
- ログレベルINFOであるログメッセージを拒否する
このAppenderを利用した場合、ログレベルERROR、DEBUG、TRACEであるログのみ出力されます。「SQLログを出力する」では、Filterを利用した設定例を紹介していますので、併せて参照してください。<filter> で指定可能な属性設定は以下の通りです。
属性 必須設定 説明 class × Filterの実装クラスの完全修飾クラス名を指定します。 Filterに対しての設定は <filter> の子要素で指定します。設定可能な値(プロパティ)は、Filterの実装により異なります。Filterの実装クラスとその他のクラスとの関連クラスの情報は以下の通りです。
以下では各種Filterの実装を紹介します。コラム
本書に記述されていないFilterについては「LogbackのWebサイト」を参照してください。
LevelFilter¶
ログレベルが特定の値と一致するかを判断し、一致/不一致の場合でのログ出力の有無をフィルタリングするFilterの実装です。
プロパティ¶
プロパティ名 タイプ 必須設定 説明 level LEVEL ○ 一致/不一致を判断する「ログレベル」を指定します。 onMatch FilterReply × ログメッセージのログレベルが <level> で指定したログレベルと一致している場合の、Filterの挙動を指定します。指定可能な値は以下の通りです。
- DENY : 出力先にログの出力を行いません。
- NEUTRAL : 後続のFilterの判定に依存します。後続に設定されているFilterが無い場合はログの出力が行われます。
- ACCEPT : 後続に設定されているFilterの判定を無視し、ログの出力を行います。
未指定の場合は、NEUTRAL を設定したものとして扱われます。onMismatch FilterReply × ログメッセージのログレベルが <level> で指定したログレベルと一致していない場合の、Filterの挙動を指定します。指定可能な値と挙動は <onMatch> と同様です。未指定の場合は、NEUTRAL を設定したものとして扱われます。
ThresholdFilter¶
ログレベルが特定の重要度であるかを判断し、特定の重要度を満たさないログメッセージの出力を抑制するFilterの実装です。
EvaluatorFilter¶
ログメッセージが特定の条件に、一致した場合/不一致の場合でのログ出力の有無をフィルタリングするFilterの実装です。条件の判定は <evaluator> に依存します。
プロパティ¶
プロパティ名 タイプ 必須設定 説明 evaluator EventEvaluator × 「EventEvaluator」を指定します。<evaluator> のclass 属性は必須です。onMatch FilterReply × <evaluator> の条件と一致している場合の、Filterの挙動を指定します。指定可能な値は以下の通りです。
- DENY : 出力先にログの出力を行いません。
- NEUTRAL : 後続のFilterの判定に依存します。後続に設定されているFilterが無い場合はログの出力が行われます。
- ACCEPT : 後続に設定されているFilterの判定を無視し、ログの出力を行います。
未指定の場合は、NEUTRAL を設定したものとして扱われます。onMismatch FilterReply × <evaluator> の条件と一致していない場合の、Filterの挙動を指定します。指定可能な値と挙動は <onMatch> と同様です。未指定の場合は、NEUTRAL を設定したものとして扱われます。
EventEvaluator¶
<evaluator> で設定します。EventEvaluatorは、以下の役割を担います。
- ログ出力時の何かしらのイベントを引数とした条件の判定
<evaluator> で指定可能な属性設定は以下の通りです。
属性 必須設定 説明 class ○ EventEvaluatorの実装クラスの完全修飾クラス名を指定します。 EventEvaluatorに対しての設定は <evaluator> の子要素で指定します。設定可能な値(プロパティ)は、EventEvaluatorの実装により異なります。EventEvaluatorの実装クラスとその他のクラスとの関連クラスの情報は以下の通りです。
以下では各種EventEvaluatorの実装を紹介します。コラム
2025 Autumn(Lilac) で Logback を 1.3.15 に更新したことに伴い、JaninoEventEvaluator は削除されました。ログ設定ファイルで条件判定を行う必要がある場合は、独自の EventEvaluator 実装クラスを作成してください。詳細はLogbackのWebサイト「JaninoEventEvaluator」を参照してください。コラム
本書に記述されていないEventEvaluatorについては「LogbackのWebサイト」を参照してください。