第13章 ロギングの設定
Red Hat build of Keycloak は、JBoss Logging フレームワークを使用します。以下は、使用可能なログハンドラーの概要です。
root
- console (デフォルト)
- file
13.1. ロギング設定
ロギングは、Red Hat build of Keycloak でカテゴリーごとに行われます。ロギングは、ルートログレベル、または org.hibernate
や org.keycloak
などのより具体的なカテゴリーで設定できます。この章では、ロギングの設定方法を説明します。
13.1.1. ログレベル
次の表は、使用可能なログレベルを定義しています。
レベル | 説明 |
---|---|
FATAL | いかなる種類の要求にもまったく対応できない致命的な障害。 |
ERROR | 要求を処理できなくなる重大なエラーまたは問題。 |
WARN | 即時の修正を必要としない場合もある、致命的ではないエラーまたは問題。 |
INFO | Red Hat build of Keycloak のライフサイクルイベントまたは重要な情報。低頻度で発生。 |
DEBUG | データベースログなど、デバッグ目的の詳細情報。高頻度で発生。 |
TRACE | 最も詳細なデバッグ情報。非常に高い頻度で発生。 |
ALL | すべてのログメッセージ向けの特別なレベル。 |
OFF | ログを完全にオフにする特別なレベル (推奨されません)。 |
13.1.2. ルートログレベルを設定する
より具体的なカテゴリーロガーのログレベル設定が存在しない場合は、代わりにそれを含むカテゴリーが使用されます。それを含むカテゴリーがない場合は、ルートロガーレベルが使用されます。
ルートログレベルを設定するには、次のコマンドを入力します。
bin/kc.[sh|bat] start --log-level=<root-level>
このコマンドには、次のガイドラインを使用してください。
-
<root-level>
には、前述の表で定義されたレベルを指定します。 -
ログレベルで大文字と小文字は区別されません。たとえば、
DEBUG
またはdebug
を使用できます。 -
誤ってログレベルを 2 回設定してしまった場合、リストの最後に指定されたログレベルになります。たとえば、
--log-level="info,…,DEBUG,…"
の構文を含めた場合、ルートロガーはDEBUG
になります。
13.1.3. カテゴリー固有のログレベルを設定する
Red Hat build of Keycloak では、特定の領域に異なるログレベルを設定できます。このコマンドを使用すると、別のログレベルが必要なカテゴリーをコンマ区切りリストで指定できます。
bin/kc.[sh|bat] start --log-level="<root-level>,<org.category1>:<org.category1-level>"
カテゴリーに適用される設定は、より具体的な一致するサブカテゴリーを含めない限り、そのサブカテゴリーにも適用されます。
例
bin/kc.[sh|bat] start --log-level="INFO,org.hibernate:debug,org.hibernate.hql.internal.ast:info"
この例では、次のようにログレベルを設定します。
- すべてのロガーのルートログレベルは INFO に設定されます。
- 通常、ハイバーネートログレベルは DEBUG に設定されます。
-
SQL 抽象構文ツリーが詳細なログ出力を作成しないようにするために、特定のサブカテゴリー
org.hibernate.hql.internal.ast
が INFO に設定されます。その結果、SQL 抽象構文ツリーはdebug
レベルでは表示されずに省略されます。