The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.
このページを編集

ロギング設定

Quarkus でのロギング API の使用、ロギング出力の設定、他のロギング API からの出力を統一するためのロギングアダプターの使用について解説します。

このドキュメントは、 QuarkusのObservabilityリファレンスガイド の一部です。

Quarkusは、JBoss Log Managerロギングバックエンドを使用して、アプリケーションとフレームワークのログを発行します。 Quarkusは、JBoss Logging APIと他の複数のロギングAPIをサポートしており、JBoss Log Managerとシームレスに統合されています。 <<logging-apis,following APIs> のいずれかを使用できます。

アプリケーションのロギングに JBoss Logging を使用

JBoss Logging APIを使用する場合、Quarkus が自動的に提供するため、アプリケーションに追加の依存関係は必要ありません。

JBoss Logging API を使用してメッセージをログに記録する例:
import org.jboss.logging.Logger;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

@Path("/hello")
public class ExampleResource {

    private static final Logger LOG = Logger.getLogger(ExampleResource.class);

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String hello() {
        LOG.info("Hello");
        return "hello";
    }
}
JBoss Logging はログメッセージを直接 JBoss Log Manager にルーティングしますが、ライブラリーの 1 つが別のロギング API に依存している場合があります。 このような場合、<<logging-apis,logging adapter> を使用して、そのログメッセージが JBoss Log Manager にもルーティングされるようにする必要があります。

アプリケーションロガーの取得

Quarkus でアプリケーションロガーを取得するには、次のいずれかのアプローチを選択します。

ロガー・フィールドの宣言

この古典的なアプローチでは、特定のAPIを使用してロガーインスタンスを取得し、それをクラスの静的フィールドに格納し、このインスタンスに対してロギング操作を呼び出します。

supported logging APIs であれば、同じフローを適用できます。

JBoss Logging API を使用してロガーインスタンスを静的フィールドに格納する例:
package com.example;

import org.jboss.logging.Logger;

public class MyService {
    private static final Logger log = Logger.getLogger(MyService.class); (1)

    public void doSomething() {
        log.info("It works!"); (2)
    }
}
1 ロガーフィールドを定義します。
2 log オブジェクトに対して、必要なロギングメソッドを呼び出します。

簡易ロギング

Quarkus は、 io.quarkus.logging.Log を使用するクラスにロガーフィールドを自動的に追加することで、ロギングを簡素化します。 これにより、反復的な定型コードが不要になり、ロギング設定の利便性が向上します。

静的メソッド呼び出しを使用した簡素化されたロギングの例:
package com.example;

import io.quarkus.logging.Log; (1)

class MyService { (2)
    public void doSomething() {
        Log.info("Simple!"); (3)
    }
}
1 io.quarkus.logging.Log クラスには、 static であることを除き、JBoss Logging と同じメソッドがあります。
2 このクラスはロガー・フィールドを宣言していないことに注意してください。 これは、アプリケーションのビルド中に、 Log API を使用する各クラスに private static final org.jboss.logging.Logger フィールドが自動的に作成されるためです。 Log メソッドを呼び出すクラスの完全修飾名が、ロガー名として使用されます。この例では、ロガー名は com.example.MyService です。
3 最後に、 Log メソッドへのすべての呼び出しは、アプリケーションビルド中に logger フィールドの通常の JBoss Logging 呼び出しに書き換えられます。

Log API は外部依存関係ではなく、アプリケーションクラスでのみ使用してください。 ビルド時に Quarkus によって処理されない Log メソッド呼び出しは例外になります。

エクステンションで io.quarkus.logging.Log を使用する:

Log API はアプリケーションクラスでのログ記録を簡素化しますが、拡張モジュールや外部依存関係での使用は推奨されません。

以下の考慮事項が適用されます。

  • io.quarkus.logging.Log は、ビルド時に発生する Quarkus バイトコード変換に依存します。

  • 拡張モジュールでは、モジュールに Jandex インデックスが含まれている場合にのみ Log が機能します。 ただし、この動作はサポートされておらず、ロギングの信頼性が低くなる可能性があります。

    エクステンションの開発では、 io.quarkus.logging.Log の代わりに org.jboss.logging.Logger.getLogger (String) を使用します。

設定されたロガーの注入

@Inject アノテーションで設定された org.jboss.logging.Logger ロガーインスタンスの注入は、 アプリケーションロガーを追加するもう一つの選択肢ですが、 CDI Beanにのみ適用できます。

@Inject Logger log を使用すると、ロガーは注入したクラスと同じ名前になり、 @Inject @LoggerName("…​") Logger log を使用すると、ロガーは指定された名前になります。注入されると、 log オブジェクトを使用して、ロギングメソッドを呼び出すことができます。

2つの異なるタイプのロガーの注入例:
package com.example;

import org.jboss.logging.Logger;

@ApplicationScoped
class SimpleBean {

   @Inject
   Logger log; (1)

   @LoggerName("foo")
   Logger fooLog; (2)

   public void ping() {
     log.info("Simple!");
     fooLog.info("Goes to _foo_ logger!");
   }
}
1 宣言するクラスの完全修飾クラス名 (FQCN) は、ロガー名として使用されます。たとえば、 org.jboss.logging.Logger.getLogger(SimpleBean.class) が使用されます。
2 この場合、 foo という名前がロガー名として使われ、例えば、 org.jboss.logging.Logger.getLogger("foo") が使われます。

ロガーインスタンスは、内部的にキャッシュされます。 したがって、たとえば @RequestScoped Bean にロガーが注入されると、挿入されると、ロガーのインスタンス化に関連してパフォーマンスが低下することを回避するために、そのロガーはすべての Bean インスタンスで共有されます。

ログレベルの使用

Quarkus にはさまざまなログレベルが用意されており、開発者はイベントの重大性に基づいてログに記録される情報量を制御できます。

利用可能なログレベル:
OFF

ロギングをオフにするために設定で使用される特別なレベル。

FATAL

重大なサービス障害またはリクエストをまったく処理できない状態。

ERROR

処理中の重大な問題またはリクエストを完了できない状態。

WARN

重大ではないサービスエラーまたは即時の修正を必要としない可能性がある問題。

INFO

サービスライフサイクルイベントまたはその他の重要で頻度の低い情報。

DEBUG

ライフサイクルイベントまたは特定のリクエストに関連付けられていないイベントに関する追加情報。デバッグに役立ちます。

TRACE

リクエストごとの詳細なデバッグ情報。非常に高頻度で提供される可能性があります。

ALL

カスタムレベルを含むすべてのメッセージのロギングをオンにする特別なレベル。

java.util.logging を使用するアプリケーションやライブラリに対して、以下のレベルを設定することもできます。 :

SEVERE

ERROR と同じ

WARNING

WARN と同じ

CONFIG

サービス構成情報

FINE

DEBUG と同じ

FINER

TRACE と同じ

FINEST

TRACE と比較して、更に度合いの強いデバッグ出力。高頻度の場合があります。

Table 1. レベル間のマッピング
レベルの数値 標準レベル名 相当する java.util.logging (JUL) レベル名

1100

FATAL

該当なし

1000

ERROR

SEVERE

900

WARN

WARNING

800

INFO

INFO

700

該当なし

CONFIG

500

DEBUG

FINE

400

TRACE

FINER

300

該当なし

FINEST

ログレベル、カテゴリー、フォーマットの設定

Quarkus に統合された JBoss Logging は、利用可能なすべてのエクステンションを設定する単一の設定ファイルを通じて、サポートされているすべての supported logging APIs 設定を一元化します。 ランタイムロギングを調整するには、 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

考えられるプロパティーはすべて、logging configuration reference セクションにリストします。

ロギングカテゴリ

ログはカテゴリごとに設定され、各カテゴリは独立して設定されます。 カテゴリの設定は、より具体的なサブカテゴリの設定がない限り、すべてのサブカテゴリに再帰的に適用されます。

すべてのロギングカテゴリの親は、"ルートカテゴリ "と呼ばれます。最終的な親として、このカテゴリは他のすべてのカテゴリにグローバルに適用される設定を含むことができます。 これには、グローバルに設定されたハンドラとフォーマッタが含まれます。

Example 1. すべてのカテゴリーに適用されるグローバル設定の例:
quarkus.log.handlers=con,mylog

quarkus.log.handler.console.con.enable=true
quarkus.log.handler.file.mylog.enable=true

この例では、ルートカテゴリーは、 conmylog という 2 つの名前付きハンドラーを使用するように設定されています。

Example 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 を使ってそのカテゴリー用に設定します。

ユースケース例としては、ファイルに保存されるログメッセージに、他のハンドラで使用されるフォーマットとは異なるタイムスタンプ形式を使いたい場合があります。

さらに詳しい説明については、Attaching named handlers to a category 例の出力を参照してください。

プロパティ名 デフォルト 説明

quarkus.log.category."<category-name>".level

INFO footnote:[一部のエクステンションでは、デフォルトでログノイズを減らすために、特定のカテゴリーに対してカスタマイズされたデフォルトのログレベルが定義される場合があります。 設定でログレベルを設定すると、エクステンションで定義されたログレベルが上書きされます。

<category-name> という名前のカテゴリーの設定に使用するレベル。 引用符は必須です。

quarkus.log.category."<category-name>".min-level

DEBUG

<category-name> という名前のカテゴリーを設定するために使用する最小ロギングレベル。引用符は必須です。

quarkus.log.category."<category-name>".use-parent-handlers

true

このロガーがその出力を親ロガーに送信するかどうかを指定します。

quarkus.log.category."<category-name>".handlers=[<handler>]

empty [1]

特定のカテゴリにアタッチしたいハンドラーの名前です。

. 記号は、設定プロパティ内の特定の部分を区切ります。 プロパティ名の引用符は、 quarkus.log.category."io.quarkus.smallrye.jwt".level=TRACE のようなカテゴリ指定をそのまま維持するための必須エスケープとして使用されます。

ルートロガーの設定

ルート・ロガー・カテゴリーは別個に扱われ、以下のプロパティを使用して設定されます:

プロパティ名 デフォルト 説明

quarkus.log.level

INFO

各ログカテゴリのデフォルトのログレベル。

quarkus.log.min-level

DEBUG

各ログカテゴリのデフォルトの最小ログレベル。

  • 指定されたロガー カテゴリにレベル設定が存在しない場合、親カテゴリが調べられます。

  • カテゴリおよびその親カテゴリのいずれにも特定の設定が提供されていない場合、 ルート・ロガー設定が使用されます。

ルートロガーのハンドラは、通常、 quarkus.log.consolequarkus.log.file および quarkus.log.syslog によって直接設定されますが、 quarkus.log.handlers プロパティを使用して、追加の名前付きハンドラを添付することができます。

ロギングフォーマット

Quarkus は、人間が判読できるテキストログを生成するパターンベースのロギングフォーマッターをデフォルトで使用します。ただし、専用のプロパティーを使用して各ログハンドラーのフォーマットを設定することもできます。

コンソールハンドラの場合、プロパティは quarkus.log.console.format です。

ログフォーマット文字列は、以下のシンボルをサポートしています:

Symbol 概要 説明

%%

%

単に % 文字をレンダリングします。

%c

カテゴリー

カテゴリ名をレンダリングします。

%C

ソースクラス

ソースクラス名をレンダリングします。[2]

%d{xxx}

日付

java.text.SimpleDateFormat で定義されている構文を使用した、指定した日付書式の文字列で日付をレンダリングします。

%e

Exception

投げられた例外があれば、その例外をレンダリングします。

%F

ソースファイル

ソースファイル名をレンダリングします。 [2]

%h

ホスト名

システムの単純なホスト名をレンダリングします。

%H

修飾ホスト名

システムの完全修飾ホスト名を表示します。オペレーティングシステムの設定によっては、単純なホスト名と同じになる場合があります。

%i

プロセスID

現在のプロセスPIDをレンダリングします。

%l

ソースの場所

ソースファイル名、行番号、クラス名、メソッド名を含むソース・ロケーション情報をレンダリングします。 [2]

%L

ソースライン

ソース行番号をレンダリングします。 [2]

%m

フルメッセージ

ログメッセージと例外(もしあれば)を表示します。

%M

ソース・メソッド

ソースメソッド名をレンダリングします。 [2]

%n

改行

プラットフォーム固有の改行文字列をレンダリングします。

%N

プロセス名

現在のプロセスの名前をレンダリングします。

%p

レベル

メッセージのログレベルをレンダリングします。

%r

相対時間

アプリケーションログの開始からの時間をミリ秒単位でレンダリングします。

%s

シンプルなメッセージ

ログメッセージのみを表示し、例外のトレースは表示しません。

%t

スレッド名

スレッド名をレンダリングします。

%t{id}

スレッドID

スレッドIDをレンダリングします。

%z{<zone name>}

タイムゾーン

出力のタイムゾーンを <zone name> に設定します。

%X{<MDC property name>}

マッピングされた診断コンテキスト値

Mapped Diagnostic Context から値をレンダリングします。

%X

マッピングされた診断コンテキスト値

マッピングされた診断コンテキストからのすべての値を {property.key=property.value} フォーマットでレンダリングします。

%x

入れ子診断のコンテキスト値

ネストされた診断コンテキストからのすべての値を {value1.value2} フォーマットでレンダリングします。

コンソール・ロギングの代替フォーマット

コンソールログの形式の変更は便利です。例えば、Quarkusアプリケーションのコンソール出力が、後で分析するためにログ情報を処理して保存するサービスによってキャプチャされる場合などです。

JSONロギングフォーマット

quarkus-logging-json エクステンションを使用すると、JSON ロギングフォーマットとその関連設定のサポートを追加できます。

  1. 以下のスニペットのように、このエクステンションをビルドファイルに追加してください:

    pom.xml
    <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-logging-json</artifactId>
    </dependency>
    build.gradle
    implementation("io.quarkus:quarkus-logging-json")

    デフォルトでは、このエクステンションが存在すると、コンソール設定からの出力形式設定が置き換えられ、フォーマット文字列と色設定 (存在する場合) は無視されます。 非同期ロギングやログレベルを制御するものなど、その他のコンソール設定項目は引き続き適用されます。

    開発モードでは人間が読める(構造化されていない)ロギングを使い、運用モードでは JSON ロギング(構造化されている)を使うことが理にかなっている場合もあるでしょう。 これは、次の設定に示すように、異なるプロファイルを使うことで実現できます。

  2. 開発モードおよびテストモードで application.properties の JSON ロギングを無効にします。

    %dev.quarkus.log.console.json.enabled=false
    %test.quarkus.log.console.json.enabled=false
Configuration (設定)

サポートされているプロパティを使用してJSONロギングエクステンションを設定し、その動作をカスタマイズしてください。

ビルド時に固定された設定プロパティー。その他の設定プロパティーはすべて実行時にオーバーライド可能です。

Configuration property

デフォルト

Console logging

デフォルト

Determine whether to enable the JSON console formatting extension, which disables "normal" console formatting.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_ENABLED

Show more

boolean

Enable "pretty printing" of the JSON record. Note that some JSON parsers will fail to read the pretty printed output.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_PRETTY_PRINT

Show more

boolean

false

The date format to use. The special string "default" indicates that the default format should be used.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_DATE_FORMAT

Show more

string

default

The special end-of-record delimiter to be used. By default, newline is used.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_RECORD_DELIMITER

Show more

string

The zone ID to use. The special string "default" indicates that the default zone should be used.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_ZONE_ID

Show more

string

default

The exception output type to specify.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_EXCEPTION_OUTPUT_TYPE

Show more

detailed, formatted, detailed-and-formatted

detailed

Enable printing of more details in the log.

Printing the details can be expensive as the values are retrieved from the caller. The details include the source class name, source file name, source method name, and source line number.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_PRINT_DETAILS

Show more

boolean

false

Override keys with custom values. Omitting this value indicates that no key overrides will be applied.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_KEY_OVERRIDES

Show more

string

Keys to be excluded from the JSON output.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_EXCLUDED_KEYS

Show more

list of string

Additional field value.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_ADDITIONAL_FIELD__FIELD_NAME__VALUE

Show more

string

required

Additional field type specification. Supported types: string, int, and long. String is the default if not specified.

Environment variable: QUARKUS_LOG_CONSOLE_JSON_ADDITIONAL_FIELD__FIELD_NAME__TYPE

Show more

string, int, long

string

Specify the format of the produced JSON

Environment variable: QUARKUS_LOG_CONSOLE_JSON_LOG_FORMAT

Show more

default, ecs

default

File logging

デフォルト

Determine whether to enable the JSON console formatting extension, which disables "normal" console formatting.

Environment variable: QUARKUS_LOG_FILE_JSON_ENABLED

Show more

boolean

Enable "pretty printing" of the JSON record. Note that some JSON parsers will fail to read the pretty printed output.

Environment variable: QUARKUS_LOG_FILE_JSON_PRETTY_PRINT

Show more

boolean

false

The date format to use. The special string "default" indicates that the default format should be used.

Environment variable: QUARKUS_LOG_FILE_JSON_DATE_FORMAT

Show more

string

default

The special end-of-record delimiter to be used. By default, newline is used.

Environment variable: QUARKUS_LOG_FILE_JSON_RECORD_DELIMITER

Show more

string

The zone ID to use. The special string "default" indicates that the default zone should be used.

Environment variable: QUARKUS_LOG_FILE_JSON_ZONE_ID

Show more

string

default

The exception output type to specify.

Environment variable: QUARKUS_LOG_FILE_JSON_EXCEPTION_OUTPUT_TYPE

Show more

detailed, formatted, detailed-and-formatted

detailed

Enable printing of more details in the log.

Printing the details can be expensive as the values are retrieved from the caller. The details include the source class name, source file name, source method name, and source line number.

Environment variable: QUARKUS_LOG_FILE_JSON_PRINT_DETAILS

Show more

boolean

false

Override keys with custom values. Omitting this value indicates that no key overrides will be applied.

Environment variable: QUARKUS_LOG_FILE_JSON_KEY_OVERRIDES

Show more

string

Keys to be excluded from the JSON output.

Environment variable: QUARKUS_LOG_FILE_JSON_EXCLUDED_KEYS

Show more

list of string

Additional field value.

Environment variable: QUARKUS_LOG_FILE_JSON_ADDITIONAL_FIELD__FIELD_NAME__VALUE

Show more

string

required

Additional field type specification. Supported types: string, int, and long. String is the default if not specified.

Environment variable: QUARKUS_LOG_FILE_JSON_ADDITIONAL_FIELD__FIELD_NAME__TYPE

Show more

string, int, long

string

Specify the format of the produced JSON

Environment variable: QUARKUS_LOG_FILE_JSON_LOG_FORMAT

Show more

default, ecs

default

Syslog logging

デフォルト

Determine whether to enable the JSON console formatting extension, which disables "normal" console formatting.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_ENABLED

Show more

boolean

Enable "pretty printing" of the JSON record. Note that some JSON parsers will fail to read the pretty printed output.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_PRETTY_PRINT

Show more

boolean

false

The date format to use. The special string "default" indicates that the default format should be used.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_DATE_FORMAT

Show more

string

default

The special end-of-record delimiter to be used. By default, newline is used.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_RECORD_DELIMITER

Show more

string

The zone ID to use. The special string "default" indicates that the default zone should be used.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_ZONE_ID

Show more

string

default

The exception output type to specify.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_EXCEPTION_OUTPUT_TYPE

Show more

detailed, formatted, detailed-and-formatted

detailed

Enable printing of more details in the log.

Printing the details can be expensive as the values are retrieved from the caller. The details include the source class name, source file name, source method name, and source line number.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_PRINT_DETAILS

Show more

boolean

false

Override keys with custom values. Omitting this value indicates that no key overrides will be applied.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_KEY_OVERRIDES

Show more

string

Keys to be excluded from the JSON output.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_EXCLUDED_KEYS

Show more

list of string

Additional field value.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_ADDITIONAL_FIELD__FIELD_NAME__VALUE

Show more

string

required

Additional field type specification. Supported types: string, int, and long. String is the default if not specified.

Environment variable: QUARKUS_LOG_SYSLOG_JSON_ADDITIONAL_FIELD__FIELD_NAME__TYPE

Show more

string, int, long

string

Specify the format of the produced JSON

Environment variable: QUARKUS_LOG_SYSLOG_JSON_LOG_FORMAT

Show more

default, ecs

default

Socket logging

デフォルト

Determine whether to enable the JSON console formatting extension, which disables "normal" console formatting.

Environment variable: QUARKUS_LOG_SOCKET_JSON_ENABLED

Show more

boolean

Enable "pretty printing" of the JSON record. Note that some JSON parsers will fail to read the pretty printed output.

Environment variable: QUARKUS_LOG_SOCKET_JSON_PRETTY_PRINT

Show more

boolean

false

The date format to use. The special string "default" indicates that the default format should be used.

Environment variable: QUARKUS_LOG_SOCKET_JSON_DATE_FORMAT

Show more

string

default

The special end-of-record delimiter to be used. By default, newline is used.

Environment variable: QUARKUS_LOG_SOCKET_JSON_RECORD_DELIMITER

Show more

string

The zone ID to use. The special string "default" indicates that the default zone should be used.

Environment variable: QUARKUS_LOG_SOCKET_JSON_ZONE_ID

Show more

string

default

The exception output type to specify.

Environment variable: QUARKUS_LOG_SOCKET_JSON_EXCEPTION_OUTPUT_TYPE

Show more

detailed, formatted, detailed-and-formatted

detailed

Enable printing of more details in the log.

Printing the details can be expensive as the values are retrieved from the caller. The details include the source class name, source file name, source method name, and source line number.

Environment variable: QUARKUS_LOG_SOCKET_JSON_PRINT_DETAILS

Show more

boolean

false

Override keys with custom values. Omitting this value indicates that no key overrides will be applied.

Environment variable: QUARKUS_LOG_SOCKET_JSON_KEY_OVERRIDES

Show more

string

Keys to be excluded from the JSON output.

Environment variable: QUARKUS_LOG_SOCKET_JSON_EXCLUDED_KEYS

Show more

list of string

Additional field value.

Environment variable: QUARKUS_LOG_SOCKET_JSON_ADDITIONAL_FIELD__FIELD_NAME__VALUE

Show more

string

required

Additional field type specification. Supported types: string, int, and long. String is the default if not specified.

Environment variable: QUARKUS_LOG_SOCKET_JSON_ADDITIONAL_FIELD__FIELD_NAME__TYPE

Show more

string, int, long

string

Specify the format of the produced JSON

Environment variable: QUARKUS_LOG_SOCKET_JSON_LOG_FORMAT

Show more

default, ecs

default

プリティプリント (pretty printing) を有効にすると、特定のプロセッサーやJSONパーサーで解釈できなくなる可能性があります。
詳細の表示は、呼び出し元から値を取得するため、コストがかかる場合があります。詳細には、ソースクラス名、ソースファイル名、ソースメソッド名、ソース行番号などが含まれます。

ログハンドラー

ログハンドラーは、ログイベントを受信者に送信するロギングコンポーネントです。 Quarkus には、 コンソールファイルsyslog といった複数のログハンドラーがあります。

特集の例では、 com.example をロギング・カテゴリーとして使用しています。

コンソールログハンドラー

コンソールログハンドラーはデフォルトで有効になっており、すべてのログイベントをアプリケーションのコンソール(通常はシステムの stdout )に送ります。

  • グローバル設定の例:

    quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] (%t) %s%e%n
  • カテゴリーごとの設定の例:

    quarkus.log.handler.console.my-console-handler.format=%d{yyyy-MM-dd HH:mm:ss} [com.example] %s%e%n
    
    quarkus.log.category."com.example".handlers=my-console-handler
    quarkus.log.category."com.example".use-parent-handlers=false

設定の詳細は、コンソールロギング設定 リファレンスを参照してください。

ファイルログハンドラー

アプリケーションのホスト上のファイルにイベントをログ記録するには、Quarkusのファイルログハンドラを使用します。 ファイルログハンドラはデフォルトで無効になっているため、最初に有効にする必要があります。

Quarkus ファイルログハンドラーは、ログファイルのローテーションをサポートします。

ログファイルのローテーションにより、主要なログファイルを最新の状態に保ち、管理可能なサイズに保ちながら、一定数のバックアップファイルを保持することで、効率的なログ管理が実現します。

  • グローバル設定の例:

    quarkus.log.file.enable=true
    quarkus.log.file.path=application.log
    quarkus.log.file.format=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] (%t) %s%e%n
  • カテゴリーごとの設定の例:

    quarkus.log.handler.file.my-file-handler.enable=true
    quarkus.log.handler.file.my-file-handler.path=application.log
    quarkus.log.handler.file.my-file-handler.format=%d{yyyy-MM-dd HH:mm:ss} [com.example] %s%e%n
    
    quarkus.log.category."com.example".handlers=my-file-handler
    quarkus.log.category."com.example".use-parent-handlers=false

設定の詳細は、ファイルログ設定 リファレンスを参照してください。

Syslog ログハンドラー

Quarkus の syslog ハンドラーは、 Syslog プロトコルに従います。このプロトコルは、UNIX ライクなシステムでログメッセージを送信するために使用されます。 このログハンドラーは、RFC 5424 で定義されたプロトコルを使用します。

デフォルトでは、syslogハンドラは無効になっています。 有効にすると、すべてのログイベントを syslog サーバー(通常はアプリケーションのローカル syslog サーバー)に送信します。

  • グローバル設定の例:

    quarkus.log.syslog.enable=true
    quarkus.log.syslog.app-name=my-application
    quarkus.log.syslog.format=%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] (%t) %s%e%n
  • カテゴリーごとの設定の例:

    quarkus.log.handler.syslog.my-syslog-handler.enable=true
    quarkus.log.handler.syslog.my-syslog-handler.app-name=my-application
    quarkus.log.handler.syslog.my-syslog-handler.format=%d{yyyy-MM-dd HH:mm:ss} [com.example] %s%e%n
    
    quarkus.log.category."com.example".handlers=my-syslog-handler
    quarkus.log.category."com.example".use-parent-handlers=false

設定の詳細は、システムロギング設定 リファレンスを参照してください。

Socket ログハンドラー

このハンドラはログをソケットに送信します。 ソケットログハンドラはデフォルトでは無効になっています。 有効にすると、すべてのログイベントを Logstash サーバなどのソケットに送信します。

  • グローバル設定の例:

    quarkus.log.socket.enable=true
    quarkus.log.socket.endpoint=localhost:4560

通常、このハンドラは quarkus-logging-json エクステンションと一緒に使用し、ECS 形式のログを Elasticsearch インスタンスに送信します。 設定例については、 集中ログ管理 ガイドを参照してください。

ログハンドラーに対するロギングフィルタの追加

コンソールログハンドラのようなログハンドラは、ログレコードがログに記録されるべきかどうかを決定する フィルタ とリンクすることができます。

ロギングフィルターの登録方法

  1. java.util.logging.Filter を実装する final クラスを @io.quarkus.logging.LoggingFilter でアノテートし、 name プロパティを設定します:

    フィルターの書き方の例:
    package com.example;
    
    import io.quarkus.logging.LoggingFilter;
    import java.util.logging.Filter;
    import java.util.logging.LogRecord;
    
    @LoggingFilter(name = "my-filter")
    public final class TestFilter implements Filter {
    
        private final String part;
    
        public TestFilter(@ConfigProperty(name = "my-filter.part") String part) {
            this.part = part;
        }
    
        @Override
        public boolean isLoggable(LogRecord record) {
            return !record.getMessage().contains(part);
        }
    }

    この例では、コンソールログから特定のテキストを含むログレコードを除外します。 フィルタリングする特定のテキストはハードコードされておらず、 my-filter.part 設定プロパティから読み込まれます。

    application.properties におけるフィルターの設定例:
    my-filter.part=TEST
  2. application.properties にある filter 設定プロパティを使用して、対応するハンドラにフィルタをアタッチします:

    quarkus.log.console.filter=my-filter

ロギング設定の例

以下の例は、Quarkus でロギングを設定する方法をいくつか示しています:

Quarkusのログ(INFO)以外のコンソールのDEBUGログ、色なし、短縮形の時間、カテゴリの接頭辞の短縮
quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n
quarkus.log.console.level=DEBUG
quarkus.console.color=false

quarkus.log.category."io.quarkus".level=INFO

コマンドラインでこれらのプロパティを追加する場合、忘れずに " をエスケープして下さい。 例えば、 -Dquarkus.log.category.\"io.quarkus\".level=DEBUG .

ファイル TRACE ロギング設定
quarkus.log.file.enable=true
# Send output to a trace.log file under the /tmp directory
quarkus.log.file.path=/tmp/trace.log
quarkus.log.file.level=TRACE
quarkus.log.file.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n
# Set 2 categories (io.quarkus.smallrye.jwt, io.undertow.request.security) to TRACE level
quarkus.log.min-level=TRACE
quarkus.log.category."io.quarkus.smallrye.jwt".level=TRACE
quarkus.log.category."io.undertow.request.security".level=TRACE
ここではルートロガーを変更していないため、コンソールログには INFO またはそれ以上のレベルのログのみが含まれます。
カテゴリにアタッチされた名前付きハンドラー
# Send output to a trace.log file under the /tmp directory
quarkus.log.file.path=/tmp/trace.log
quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n
# Configure a named handler that logs to console
quarkus.log.handler.console."STRUCTURED_LOGGING".format=%e%n
# Configure a named handler that logs to file
quarkus.log.handler.file."STRUCTURED_LOGGING_FILE".enable=true
quarkus.log.handler.file."STRUCTURED_LOGGING_FILE".format=%e%n
# Configure the category and link the two named handlers to it
quarkus.log.category."io.quarkus.category".level=INFO
quarkus.log.category."io.quarkus.category".handlers=STRUCTURED_LOGGING,STRUCTURED_LOGGING_FILE
ルートロガーにアタッチされた名前付きハンドラー
# configure a named file handler that sends the output to 'quarkus.log'
quarkus.log.handler.file.CONSOLE_MIRROR.enable=true
quarkus.log.handler.file.CONSOLE_MIRROR.path=quarkus.log
# attach the handler to the root logger
quarkus.log.handlers=CONSOLE_MIRROR

ログの一元管理

アプリケーションのさまざまなコンポーネントやインスタンスからログデータを効率的に収集、保存、分析するために、一元化された場所を使用します。

Graylog、Logstash、Fluentdなどの集中型ツールにログを送信するには、Quarkusの 集中型ログ管理 ガイドを参照してください。

OpenTelemetry ログ

OpenTelemetry Logging を使用することで、すべてのアペンダーからのログエントリを送信できます。

詳細は、Quarkus OpenTelemetry Logging ガイドを参照してください。

@QuarkusTest のロギング設定

java.util.logging.manager システム・プロパティを org.jboss.logmanager.LogManager に設定して、 @QuarkusTest の適切なロギングを有効にします。

このシステム・プロパティは早い段階で設定しておかないと効果がないので、ビルド・システムで設定することをお勧めします。

Maven Surefire プラグイン構成で java.util.logging.manager システム・プロパティを設定します:
<build>
  <plugins>
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>${surefire-plugin.version}</version>
      <configuration>
        <systemPropertyVariables>
          <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> (1)
          <quarkus.log.level>DEBUG</quarkus.log.level>  (2)
          <maven.home>${maven.home}</maven.home>
        </systemPropertyVariables>
      </configuration>
    </plugin>
  </plugins>
</build>
1 org.jboss.logmanager.LogManager が使用されていることを確認してください。
2 すべてのロギングカテゴリのデバッグロギングを有効にします。

Gradleの場合は、 build.gradle ファイルに以下の設定を追加します:

test {
	systemProperty "java.util.logging.manager", "org.jboss.logmanager.LogManager"
}

Running @QuarkusTest from an IDE も参照してください。

他のロギングAPIの使用

Quarkus は、すべてのロギング要件を JBoss Logging ライブラリーに依存しています。

Apache Commons Logging、Log4j、SLF4J など、他のロギングライブラリに依存するライブラリを使用する場合。 その場合、依存関係からそれらを除外し、JBoss Logging アダプターのいずれかを使用します。

これはネイティブ実行可能ファイルをビルドする際に特に重要です。 ネイティブ実行可能ファイルをコンパイルする際に、以下のような問題が発生する可能性があるからです:

Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl

ロギングの実装はネイティブ実行可能ファイルには含まれていませんが、JBoss Logging アダプターを使用してこの問題を解決できます。

これらのアダプターは、次の章で説明するように、人気のあるオープンソースのロギングコンポーネントで利用可能です。

アプリケーションにロギングアダプタを追加

jboss-logging 以外の各ロギングAPIについて:

  1. ロギングアダプターライブラリーを追加して、これらの API を通じてログ記録されたメッセージが JBoss Log Manager バックエンドにルーティングされるようにします。

    Quarkusエクステンションの依存ライブラリで、エクステンションが自動的に処理する場合は、この手順は不要です。
    • Apache Commons Logging:

      pom.xml
      <dependency>
          <groupId>org.jboss.logging</groupId>
          <artifactId>commons-logging-jboss-logging</artifactId>
      </dependency>
      build.gradle
      implementation("org.jboss.logging:commons-logging-jboss-logging")
    • Log4j:

      pom.xml
      <dependency>
          <groupId>org.jboss.logmanager</groupId>
          <artifactId>log4j-jboss-logmanager</artifactId>
      </dependency>
      build.gradle
      implementation("org.jboss.logmanager:log4j-jboss-logmanager")
    • Log4j 2:

      pom.xml
      <dependency>
          <groupId>org.jboss.logmanager</groupId>
          <artifactId>log4j2-jboss-logmanager</artifactId>
      </dependency>
      build.gradle
      implementation("org.jboss.logmanager:log4j2-jboss-logmanager")

      log4j2-jboss-logmanager ライブラリーには、Log4j をロギング実装として使用するために必要なものがすべて含まれているため、Log4j の依存関係を含めないでください。

    • SLF4J:

      pom.xml
      <dependency>
          <groupId>org.jboss.slf4j</groupId>
          <artifactId>slf4j-jboss-logmanager</artifactId>
      </dependency>
      build.gradle
      implementation("org.jboss.slf4j:slf4j-jboss-logmanager")
  2. 追加したライブラリによって生成されたログが、他のQuarkusログと同じ形式であるかどうかを確認してください。

MDCを使用してコンテキストログ情報を追加

Quarkus は、リアクティブコアとの互換性を高めるために、ロギングの Mapped Diagnostic Context (MDC) をオーバーライドします。

MDCデータの追加と読込

MDCにデータを追加し、ログ出力に抽出するには以下のように行います:

  1. MDC クラスを使ってデータをセットします。

    1. import org.jboss.logmanager.MDC; を追加します。

    2. 以下の例に示すように、 MDC.put(…​) を設定します。

      JBoss Logging と io.quarkus.logging.Log の例
      package me.sample;
      
      import io.quarkus.logging.Log;
      import jakarta.ws.rs.GET;
      import jakarta.ws.rs.Path;
      import org.jboss.logmanager.MDC;
      
      import java.util.UUID;
      
      @Path("/hello/jboss")
      public class GreetingResourceJbossLogging {
      
          @GET
          @Path("/test")
          public String greeting() {
              MDC.put("request.id", UUID.randomUUID().toString());
              MDC.put("request.path", "/hello/test");
              Log.info("request received");
              return "hello world!";
          }
      }
  2. ログ形式を %X {mdc-key} を使用するように設定します。

    quarkus.log.console.format=%d{HH:mm:ss} %-5p request.id=%X{request.id} request.path=%X{request.path} [%c{2.}] (%t) %s%n

    結果のメッセージには MDC データが含まれます。

    08:48:13 INFO request.id=c37a3a36-b7f6-4492-83a1-de41dbc26fe2 request.path=/hello/test [me.sa.GreetingResourceJbossLogging] (executor-thread-1) request received

MDCとサポートされるロギングAPI

ロギング API に応じて、次のいずれかの MDC クラスを使用します。

  • Log4j 1 - org.apache.log4j.MDC.put(key, value)

  • Log4j 2 - org.apache.logging.log4j.ThreadContext.put(key, value)

  • SLF4J - org.slf4j.MDC.put(key, value)

MDCの伝播

Quarkusでは、MDCプロバイダにはリアクティブコンテキストを処理するための特別な実装があり、リアクティブ処理や非同期処理中にMDCデータが確実に伝搬されます。

その結果、さまざまなシナリオでMDCデータにアクセスすることができます:

  • 非同期呼び出しの後、例えばRESTクライアントがUniを返す場合:

  • org.eclipse.microprofile.context.ManagedExecutor に送信されたコードで:

  • vertx.executeBlocking() で実行されるコードで:

該当する場合、MDC データは複製されたコンテキストに保存されます。これは、単一のタスクまたはリクエストを処理するための分離されたコンテキストです。

ロギング設定リファレンス

ビルド時に固定された設定プロパティー。その他の設定プロパティーはすべて実行時にオーバーライド可能です。

Configuration property

タイプ

デフォルト

If enabled and a metrics extension is present, logging metrics are published.

Environment variable: QUARKUS_LOG_METRICS_ENABLED

Show more

ブーリアン

false

The default minimum log level.

Environment variable: QUARKUS_LOG_MIN_LEVEL

Show more

Level

DEBUG

This will decorate the stacktrace in dev mode to show the line in the code that cause the exception

Environment variable: QUARKUS_LOG_DECORATE_STACKTRACES

Show more

ブーリアン

true

The log level of the root category, which is used as the default log level for all categories. <p> JBoss Logging supports Apache-style log levels: <p> * {@link org.jboss.logmanager.Level#FATAL} * {@link org.jboss.logmanager.Level#ERROR} * {@link org.jboss.logmanager.Level#WARN} * {@link org.jboss.logmanager.Level#INFO} * {@link org.jboss.logmanager.Level#DEBUG} * {@link org.jboss.logmanager.Level#TRACE}

In addition, it also supports the standard JDK log levels.

Environment variable: QUARKUS_LOG_LEVEL

Show more

Level

INFO

The names of additional handlers to link to the root category. These handlers are defined in consoleHandlers, fileHandlers, or syslogHandlers.

Environment variable: QUARKUS_LOG_HANDLERS

Show more

list of string

Minimum logging categories

タイプ

デフォルト

The minimum log level for this category. By default, all categories are configured with DEBUG minimum level.

To get runtime logging below DEBUG, e.g., TRACE, adjust the minimum level at build time. The right log level needs to be provided at runtime.

As an example, to get TRACE logging, minimum level needs to be at TRACE, and the runtime log level needs to match that.

Environment variable: QUARKUS_LOG_CATEGORY__CATEGORIES__MIN_LEVEL

Show more

InheritableLevel

inherit

The log level for this category.

Note that to get log levels below INFO, the minimum level build-time configuration option also needs to be adjusted.

Environment variable: QUARKUS_LOG_CATEGORY__CATEGORIES__LEVEL

Show more

InheritableLevel

inherit

The names of the handlers to link to this category.

Environment variable: QUARKUS_LOG_CATEGORY__CATEGORIES__HANDLERS

Show more

list of string

Specify whether this logger should send its output to its parent Logger

Environment variable: QUARKUS_LOG_CATEGORY__CATEGORIES__USE_PARENT_HANDLERS

Show more

ブーリアン

true

Console logging

タイプ

デフォルト

If console logging should be enabled

Environment variable: QUARKUS_LOG_CONSOLE_ENABLE

Show more

ブーリアン

true

If console logging should go to System#err instead of System#out.

Environment variable: QUARKUS_LOG_CONSOLE_STDERR

Show more

ブーリアン

false

The log format. Note that this value is ignored if an extension is present that takes control of console formatting (e.g., an XML or JSON-format extension).

Environment variable: QUARKUS_LOG_CONSOLE_FORMAT

Show more

string

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n

The console log level.

Environment variable: QUARKUS_LOG_CONSOLE_LEVEL

Show more

Level

ALL

Specify how much the colors should be darkened. Note that this value is ignored if an extension is present that takes control of console formatting (e.g., an XML or JSON-format extension).

Environment variable: QUARKUS_LOG_CONSOLE_DARKEN

Show more

int

0

The name of the filter to link to the console handler.

Environment variable: QUARKUS_LOG_CONSOLE_FILTER

Show more

string

Indicates whether to log asynchronously

Environment variable: QUARKUS_LOG_CONSOLE_ASYNC

Show more

ブーリアン

false

The queue length to use before flushing writing

Environment variable: QUARKUS_LOG_CONSOLE_ASYNC_QUEUE_LENGTH

Show more

int

512

Determine whether to block the publisher (rather than drop the message) when the queue is full

Environment variable: QUARKUS_LOG_CONSOLE_ASYNC_OVERFLOW

Show more

block, discard

block

File logging

タイプ

デフォルト

If file logging should be enabled

Environment variable: QUARKUS_LOG_FILE_ENABLE

Show more

ブーリアン

false

The log format

Environment variable: QUARKUS_LOG_FILE_FORMAT

Show more

string

%d{yyyy-MM-dd HH:mm:ss,SSS} %h %N[%i] %-5p [%c{3.}] (%t) %s%e%n

The level of logs to be written into the file.

Environment variable: QUARKUS_LOG_FILE_LEVEL

Show more

Level

ALL

The name of the file in which logs will be written.

Environment variable: QUARKUS_LOG_FILE_PATH

Show more

File

quarkus.log

The name of the filter to link to the file handler.

Environment variable: QUARKUS_LOG_FILE_FILTER

Show more

string

The character encoding used

Environment variable: QUARKUS_LOG_FILE_ENCODING

Show more

Charset

Indicates whether to log asynchronously

Environment variable: QUARKUS_LOG_FILE_ASYNC

Show more

ブーリアン

false

The queue length to use before flushing writing

Environment variable: QUARKUS_LOG_FILE_ASYNC_QUEUE_LENGTH

Show more

int

512

Determine whether to block the publisher (rather than drop the message) when the queue is full

Environment variable: QUARKUS_LOG_FILE_ASYNC_OVERFLOW

Show more

block, discard

block

The maximum log file size, after which a rotation is executed. Note that the file is rotated after the log record is written. Thus, this isn’t a hard maximum on the file size; rather, it’s a hard minimum on the size of the file before it is rotated.

Environment variable: QUARKUS_LOG_FILE_ROTATION_MAX_FILE_SIZE

Show more

MemorySize 

10M

The maximum number of backups to keep.

Environment variable: QUARKUS_LOG_FILE_ROTATION_MAX_BACKUP_INDEX

Show more

int

5

The file handler rotation file suffix. When used, the file will be rotated based on its suffix.

The suffix must be in a date-time format that is understood by DateTimeFormatter.

Example fileSuffix: .yyyy-MM-dd

Note: If the suffix ends with .zip or .gz, the rotation file will also be compressed.

Environment variable: QUARKUS_LOG_FILE_ROTATION_FILE_SUFFIX

Show more

string

Indicates whether to rotate log files on server initialization.

You need to either set a max-file-size or configure a file-suffix for it to work.

Environment variable: QUARKUS_LOG_FILE_ROTATION_ROTATE_ON_BOOT

Show more

ブーリアン

true

Syslog logging

タイプ

デフォルト

If syslog logging should be enabled

Environment variable: QUARKUS_LOG_SYSLOG_ENABLE

Show more

ブーリアン

false

The IP address and port of the Syslog server

Environment variable: QUARKUS_LOG_SYSLOG_ENDPOINT

Show more

host:port

localhost:514

The app name used when formatting the message in RFC5424 format

Environment variable: QUARKUS_LOG_SYSLOG_APP_NAME

Show more

string

The name of the host the messages are being sent from

Environment variable: QUARKUS_LOG_SYSLOG_HOSTNAME

Show more

string

Sets the facility used when calculating the priority of the message as defined by RFC-5424 and RFC-3164

Environment variable: QUARKUS_LOG_SYSLOG_FACILITY

Show more

kernel, user-level, mail-system, system-daemons, security, syslogd, line-printer, network-news, uucp, clock-daemon, security2, ftp-daemon, ntp, log-audit, log-alert, clock-daemon2, local-use-0, local-use-1, local-use-2, local-use-3, local-use-4, local-use-5, local-use-6, local-use-7

user-level

Set the SyslogType syslog type this handler should use to format the message sent

Environment variable: QUARKUS_LOG_SYSLOG_SYSLOG_TYPE

Show more

rfc5424, rfc3164

rfc5424

Sets the protocol used to connect to the Syslog server

Environment variable: QUARKUS_LOG_SYSLOG_PROTOCOL

Show more

tcp, udp, ssl-tcp

tcp

If enabled, the message being sent is prefixed with the size of the message

Environment variable: QUARKUS_LOG_SYSLOG_USE_COUNTING_FRAMING

Show more

ブーリアン

false

Set to true to truncate the message if it exceeds maximum length

Environment variable: QUARKUS_LOG_SYSLOG_TRUNCATE

Show more

ブーリアン

true

Enables or disables blocking when attempting to reconnect a Protocol#TCP TCP or Protocol#SSL_TCP SSL TCP protocol

Environment variable: QUARKUS_LOG_SYSLOG_BLOCK_ON_RECONNECT

Show more

ブーリアン

false

The log message format

Environment variable: QUARKUS_LOG_SYSLOG_FORMAT

Show more

string

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n

The log level specifying what message levels will be logged by the Syslog logger

Environment variable: QUARKUS_LOG_SYSLOG_LEVEL

Show more

Level

ALL

The name of the filter to link to the file handler.

Environment variable: QUARKUS_LOG_SYSLOG_FILTER

Show more

string

The maximum length, in bytes, of the message allowed to be sent. The length includes the header and the message.

If not set, the default value is 2048 when sys-log-type is rfc5424 (which is the default) and 1024 when sys-log-type is rfc3164

Environment variable: QUARKUS_LOG_SYSLOG_MAX_LENGTH

Show more

MemorySize 

Indicates whether to log asynchronously

Environment variable: QUARKUS_LOG_SYSLOG_ASYNC

Show more

ブーリアン

false

The queue length to use before flushing writing

Environment variable: QUARKUS_LOG_SYSLOG_ASYNC_QUEUE_LENGTH

Show more

int

512

Determine whether to block the publisher (rather than drop the message) when the queue is full

Environment variable: QUARKUS_LOG_SYSLOG_ASYNC_OVERFLOW

Show more

block, discard

block

Socket logging

タイプ

デフォルト

If socket logging should be enabled

Environment variable: QUARKUS_LOG_SOCKET_ENABLE

Show more

ブーリアン

false

The IP address and port of the server receiving the logs

Environment variable: QUARKUS_LOG_SOCKET_ENDPOINT

Show more

host:port

localhost:4560

Sets the protocol used to connect to the syslog server

Environment variable: QUARKUS_LOG_SOCKET_PROTOCOL

Show more

tcp, udp, ssl-tcp

tcp

Enables or disables blocking when attempting to reconnect a Protocol#TCP TCP or Protocol#SSL_TCP SSL TCP protocol

Environment variable: QUARKUS_LOG_SOCKET_BLOCK_ON_RECONNECT

Show more

ブーリアン

false

The log message format

Environment variable: QUARKUS_LOG_SOCKET_FORMAT

Show more

string

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n

The log level specifying, which message levels will be logged by socket logger

Environment variable: QUARKUS_LOG_SOCKET_LEVEL

Show more

Level

ALL

The name of the filter to link to the file handler.

Environment variable: QUARKUS_LOG_SOCKET_FILTER

Show more

string

Indicates whether to log asynchronously

Environment variable: QUARKUS_LOG_SOCKET_ASYNC

Show more

ブーリアン

false

The queue length to use before flushing writing

Environment variable: QUARKUS_LOG_SOCKET_ASYNC_QUEUE_LENGTH

Show more

int

512

Determine whether to block the publisher (rather than drop the message) when the queue is full

Environment variable: QUARKUS_LOG_SOCKET_ASYNC_OVERFLOW

Show more

block, discard

block

Console handlers

タイプ

デフォルト

If console logging should be enabled

Environment variable: QUARKUS_LOG_HANDLER_CONSOLE__CONSOLE_HANDLERS__ENABLE

Show more

ブーリアン

true

If console logging should go to System#err instead of System#out.

Environment variable: QUARKUS_LOG_HANDLER_CONSOLE__CONSOLE_HANDLERS__STDERR

Show more

ブーリアン

false

The log format. Note that this value is ignored if an extension is present that takes control of console formatting (e.g., an XML or JSON-format extension).

Environment variable: QUARKUS_LOG_HANDLER_CONSOLE__CONSOLE_HANDLERS__FORMAT

Show more

string

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n

The console log level.

Environment variable: QUARKUS_LOG_HANDLER_CONSOLE__CONSOLE_HANDLERS__LEVEL

Show more

Level

ALL

Specify how much the colors should be darkened. Note that this value is ignored if an extension is present that takes control of console formatting (e.g., an XML or JSON-format extension).

Environment variable: QUARKUS_LOG_HANDLER_CONSOLE__CONSOLE_HANDLERS__DARKEN

Show more

int

0

The name of the filter to link to the console handler.

Environment variable: QUARKUS_LOG_HANDLER_CONSOLE__CONSOLE_HANDLERS__FILTER

Show more

string

Indicates whether to log asynchronously

Environment variable: QUARKUS_LOG_HANDLER_CONSOLE__CONSOLE_HANDLERS__ASYNC

Show more

ブーリアン

false

The queue length to use before flushing writing

Environment variable: QUARKUS_LOG_HANDLER_CONSOLE__CONSOLE_HANDLERS__ASYNC_QUEUE_LENGTH

Show more

int

512

Determine whether to block the publisher (rather than drop the message) when the queue is full

Environment variable: QUARKUS_LOG_HANDLER_CONSOLE__CONSOLE_HANDLERS__ASYNC_OVERFLOW

Show more

block, discard

block

File handlers

タイプ

デフォルト

If file logging should be enabled

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__ENABLE

Show more

ブーリアン

false

The log format

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__FORMAT

Show more

string

%d{yyyy-MM-dd HH:mm:ss,SSS} %h %N[%i] %-5p [%c{3.}] (%t) %s%e%n

The level of logs to be written into the file.

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__LEVEL

Show more

Level

ALL

The name of the file in which logs will be written.

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__PATH

Show more

File

quarkus.log

The name of the filter to link to the file handler.

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__FILTER

Show more

string

The character encoding used

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__ENCODING

Show more

Charset

Indicates whether to log asynchronously

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__ASYNC

Show more

ブーリアン

false

The queue length to use before flushing writing

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__ASYNC_QUEUE_LENGTH

Show more

int

512

Determine whether to block the publisher (rather than drop the message) when the queue is full

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__ASYNC_OVERFLOW

Show more

block, discard

block

The maximum log file size, after which a rotation is executed. Note that the file is rotated after the log record is written. Thus, this isn’t a hard maximum on the file size; rather, it’s a hard minimum on the size of the file before it is rotated.

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__ROTATION_MAX_FILE_SIZE

Show more

MemorySize 

10M

The maximum number of backups to keep.

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__ROTATION_MAX_BACKUP_INDEX

Show more

int

5

The file handler rotation file suffix. When used, the file will be rotated based on its suffix.

The suffix must be in a date-time format that is understood by DateTimeFormatter.

Example fileSuffix: .yyyy-MM-dd

Note: If the suffix ends with .zip or .gz, the rotation file will also be compressed.

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__ROTATION_FILE_SUFFIX

Show more

string

Indicates whether to rotate log files on server initialization.

You need to either set a max-file-size or configure a file-suffix for it to work.

Environment variable: QUARKUS_LOG_HANDLER_FILE__FILE_HANDLERS__ROTATION_ROTATE_ON_BOOT

Show more

ブーリアン

true

Syslog handlers

タイプ

デフォルト

If syslog logging should be enabled

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__ENABLE

Show more

ブーリアン

false

The IP address and port of the Syslog server

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__ENDPOINT

Show more

host:port

localhost:514

The app name used when formatting the message in RFC5424 format

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__APP_NAME

Show more

string

The name of the host the messages are being sent from

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__HOSTNAME

Show more

string

Sets the facility used when calculating the priority of the message as defined by RFC-5424 and RFC-3164

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__FACILITY

Show more

kernel, user-level, mail-system, system-daemons, security, syslogd, line-printer, network-news, uucp, clock-daemon, security2, ftp-daemon, ntp, log-audit, log-alert, clock-daemon2, local-use-0, local-use-1, local-use-2, local-use-3, local-use-4, local-use-5, local-use-6, local-use-7

user-level

Set the SyslogType syslog type this handler should use to format the message sent

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__SYSLOG_TYPE

Show more

rfc5424, rfc3164

rfc5424

Sets the protocol used to connect to the Syslog server

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__PROTOCOL

Show more

tcp, udp, ssl-tcp

tcp

If enabled, the message being sent is prefixed with the size of the message

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__USE_COUNTING_FRAMING

Show more

ブーリアン

false

Set to true to truncate the message if it exceeds maximum length

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__TRUNCATE

Show more

ブーリアン

true

Enables or disables blocking when attempting to reconnect a Protocol#TCP TCP or Protocol#SSL_TCP SSL TCP protocol

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__BLOCK_ON_RECONNECT

Show more

ブーリアン

false

The log message format

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__FORMAT

Show more

string

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n

The log level specifying what message levels will be logged by the Syslog logger

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__LEVEL

Show more

Level

ALL

The name of the filter to link to the file handler.

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__FILTER

Show more

string

The maximum length, in bytes, of the message allowed to be sent. The length includes the header and the message.

If not set, the default value is 2048 when sys-log-type is rfc5424 (which is the default) and 1024 when sys-log-type is rfc3164

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__MAX_LENGTH

Show more

MemorySize 

Indicates whether to log asynchronously

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__ASYNC

Show more

ブーリアン

false

The queue length to use before flushing writing

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__ASYNC_QUEUE_LENGTH

Show more

int

512

Determine whether to block the publisher (rather than drop the message) when the queue is full

Environment variable: QUARKUS_LOG_HANDLER_SYSLOG__SYSLOG_HANDLERS__ASYNC_OVERFLOW

Show more

block, discard

block

Socket handlers

タイプ

デフォルト

If socket logging should be enabled

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__ENABLE

Show more

ブーリアン

false

The IP address and port of the server receiving the logs

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__ENDPOINT

Show more

host:port

localhost:4560

Sets the protocol used to connect to the syslog server

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__PROTOCOL

Show more

tcp, udp, ssl-tcp

tcp

Enables or disables blocking when attempting to reconnect a Protocol#TCP TCP or Protocol#SSL_TCP SSL TCP protocol

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__BLOCK_ON_RECONNECT

Show more

ブーリアン

false

The log message format

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__FORMAT

Show more

string

%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n

The log level specifying, which message levels will be logged by socket logger

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__LEVEL

Show more

Level

ALL

The name of the filter to link to the file handler.

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__FILTER

Show more

string

Indicates whether to log asynchronously

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__ASYNC

Show more

ブーリアン

false

The queue length to use before flushing writing

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__ASYNC_QUEUE_LENGTH

Show more

int

512

Determine whether to block the publisher (rather than drop the message) when the queue is full

Environment variable: QUARKUS_LOG_HANDLER_SOCKET__SOCKET_HANDLERS__ASYNC_OVERFLOW

Show more

block, discard

block

Log cleanup filters - internal use

タイプ

デフォルト

The message prefix to match

Environment variable: QUARKUS_LOG_FILTER__FILTERS__IF_STARTS_WITH

Show more

list of string

inherit

The new log level for the filtered message. Defaults to DEBUG.

Environment variable: QUARKUS_LOG_FILTER__FILTERS__TARGET_LEVEL

Show more

Level

DEBUG

MemorySizeフォーマットについて

A size configuration option recognizes strings in this format (shown as a regular expression): [0-9]+[KkMmGgTtPpEeZzYy]?.

If no suffix is given, assume bytes.


1. デフォルトでは設定されたカテゴリはルートロガーにアタッチされたハンドラーと同じものを受け取ります。
2. 呼び出し元情報を調べるフォーマットシーケンスはパフォーマンスに影響する可能性があります

関連コンテンツ