1.4. ログレベル、カテゴリー、フォーマットの設定
JBoss Logging は Quarkus に組み込まれており、すべての サポートされるロギング API で 統合設定 を使用できます。
application.properties ファイルで、ランタイムロギングを設定します。
デフォルトのログレベルを INFO ロギングに設定し、Hibernate DEBUG ログを含める例:
quarkus.log.level=INFO
quarkus.log.category."org.hibernate".level=DEBUG
ログレベルを DEBUG 未満に設定する場合は、最小ログレベルも調整する必要があります。これは、quarkus.log.min-level 設定プロパティーを使用してグローバルに、またはカテゴリーごとに設定できます。
quarkus.log.category."org.hibernate".min-level=TRACE
これにより、Quarkus がサポートコードを生成する必要があるフロアレベルが設定されます。Quarkus が実用的ではないレベルのログを省略して最適化できるように、最小ログレベルはビルド時に設定する必要があります。
ネイティブ実行の例:
INFO を最小ログレベルとして設定すると、それより低い isTraceEnabled などのレベルのチェックが false に設定されます。これにより、if(logger.isDebug()) callMethod(); のようなコードが特定され、"dead" としてマークされて決して実行されなくなります。
該当するプロパティーをコマンドラインで追加する場合は、" の文字が正しくエスケープされていることを確認してください。
-Dquarkus.log.category.\"org.hibernate\".level=TRACE
可能性のあるプロパティーは、すべて ロギング設定リファレンス セクションにリストされています。
1.4.1. ロギングカテゴリー リンクのコピーリンクがクリップボードにコピーされました!
ロギングはカテゴリーごとに設定され、各カテゴリーは個別に設定されます。具体的なサブカテゴリー設定がなければ、カテゴリーの設定はすべてのサブカテゴリーに再帰的に適用されます。
すべてのロギングカテゴリーの親は、"ルートカテゴリー" と呼ばれます。最終的な親となるこのカテゴリーには、他の全カテゴリーにグローバルに適用される設定が含まれる場合があります。これには、グローバルに設定されたハンドラーおよびフォーマッターが含まれます。
例1.1 すべてのカテゴリーに適用されるグローバル設定の例:
quarkus.log.handlers=console,mylog
この例では、ルートカテゴリーは console および mylog の 2 つのハンドラーを使用するよう設定されています。
例1.2 カテゴリーごとの設定の例:
quarkus.log.category."org.apache.kafka.clients".level=INFO
quarkus.log.category."org.apache.kafka.common.utils".level=INFO
この例は、org.apache.kafka.clients および org.apache.kafka.common.utils のカテゴリーで、最小ログレベルを設定する方法を示しています。
詳細は、ロギング設定リファレンス を参照してください。
特定のカテゴリーに設定を追加する場合は、quarkus.log.handler.[console|file|syslog].<your-handler-name>.* などの名前付きハンドラーを作成し、quarkus.log.category.<my-category>.handlers を使用してそのカテゴリーに設定します。
ユースケースの例としては、ファイルに保存されるログメッセージに、他のハンドラーで使用されるフォーマットとは異なるタイムスタンプフォーマットを使用する場合があります。
詳細なデモは、b名前付きハンドラーをカテゴリーに割り当てる の出力例を参照してください。
| プロパティー名 | デフォルト | 説明 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
| このロガーが出力を親ロガーに送信するかどうかを指定します。 |
|
|
| 特定のカテゴリーに割り当てるハンドラーの名前。 |
[a]
一部のエクステンションでは、デフォルトでログノイズを減らすために、特定のカテゴリーにカスタマイズされたデフォルトログレベルを定義する場合があります。設定でログレベルを設定すると、エクステンションで定義されたログレベルがオーバーライドされます。
[b]
デフォルトで、設定されたカテゴリーのハンドラーは、ルートロガーに割り当てられたハンドラーと同じになります。
| ||
. 記号は、設定プロパティーの特定の部分を分離します。プロパティー名に含まれる引用符は、カテゴリー仕様をそのまま維持するために必要なエスケープとして使用されます (例: quarkus.log.category."io.quarkus.smallrye.jwt".level=TRACE)。
1.4.2. ルートロガー設定 リンクのコピーリンクがクリップボードにコピーされました!
ルートロガーカテゴリーは個別に処理され、次のプロパティーを使用して設定されます。
| プロパティー名 | デフォルト | 説明 |
|---|---|---|
|
|
| すべてのログカテゴリーのデフォルトログレベル。 |
|
|
| すべてのログカテゴリーのデフォルト最小ログレベル。 |
- 指定されたロガーカテゴリーにレベルが設定されていない場合は、親カテゴリーが確認されます。
- カテゴリーやその親カテゴリーのいずれにも設定が指定されていない場合は、ルートロガー設定が使用されます。
通常、ルートロガーのハンドラーは quarkus.log.console、quarkus.log.file、quarkus.log.syslog を介して直接設定されますが、quarkus.log.handlers プロパティーを使用して追加の名前付きハンドラーを割り当てることも可能です。