16.3. 各ハンドラーのログレベルを指定する
log-level
プロパティーは、グローバルルートログレベルと選択したカテゴリーのレベルを指定します。ただし、最新のアプリケーション要件に準拠するには、ログレベルに対してよりきめ細かいアプローチが必要です。
特定のハンドラーのログレベルを設定するために、log-<handler>-level
(<handler>
は使用可能なログハンドラー) 形式のプロパティーが導入されました。
つまり、ログレベル設定のプロパティーは次のようになります。
-
log-console-level
- コンソールログハンドラー -
log-file-level
- File ログハンドラー -
log-syslog-level
- Syslog ログハンドラー
log-<handler>-level
プロパティーは、特定のログハンドラーが有効になっている場合にのみ使用できます。詳細は、以下のログハンドラー設定を参照してください。
「ログレベル」 セクションで指定されたログレベルのみが受け入れられ、小文字でなければなりません。ログハンドラーの特定のカテゴリーを指定する機能はまだサポートされていません。
16.3.1. 一般原則
特定のハンドラーごとにログレベルを設定しても、log-level
プロパティーで指定された ルートレベルはオーバーライドされない ことを理解する必要があります。ログハンドラーは、ロギングシステム全体の最大の詳細度を表すルートログレベルを考慮します。つまり、個々のログハンドラーはルートロガーよりも詳細度が低くなるように設定できますが、それ以上には設定できません。
具体的には、ハンドラーに任意のログレベルが定義されている場合、そのログレベルのログレコードが出力に存在するわけではありません。その場合、ルート log-level
も評価する必要があります。ログハンドラーレベルは ルートログレベルの制限 を提供し、ログハンドラーのデフォルトのログレベルは all
(制限なし) です。
16.3.2. 例
例: ファイルハンドラーの場合は debug
、コンソールハンドラーの場合は info
:
bin/kc.[sh|bat] start --log=console,file --log-level=debug --log-console-level=info
ルートログレベルは debug
に設定されているため、すべてのログハンドラーはその値を継承します。File ログハンドラーも同様です。コンソールで debug
レコードを非表示にするには、コンソールハンドラーの最小 (最も深刻でない) レベルを info
に設定する必要があります。
例: すべてのハンドラーに対して warn
、ファイルハンドラーに対しては debug
:
bin/kc.[sh|bat] start --log=console,file,syslog --log-level=debug --log-console-level=warn --log-syslog-level=warn
ルートレベルは、最も詳細な必要なレベル (この場合は debug
) に設定する必要があり、他のログハンドラーもそれに応じて修正する必要があります。
例: すべてのハンドラーの場合は info
、ただし Syslog ハンドラーの場合は debug
+ org.keycloak.events:trace
:
bin/kc.[sh|bat] start --log=console,file,syslog --log-level=debug,org.keycloak.events:trace, --log-syslog-level=trace --log-console-level=info --log-file-level=info
org.keycloak.events:trace
を表示するには、Syslog ハンドラーの trace
レベルを設定する必要があります。