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