10.3. ロギングサブシステム設定の概要


JBoss EAP の logging サブシステムは設定に ログカテゴリー および ログハンドラー を使用します。ログカテゴリーはキャプチャーするメッセージを指定し、ログハンドラーはディスクへの書き込みやコンソールへの送信などのメッセージの処理方法を定義します。

アプリケーションのロギングプロファイル を使用すると、メインのロギング設定とは別に、デプロイメントに割り当てることができる一意の名前や、複数のデプロイメントに割り当てることができます。ロギングプロファイルの設定は、メインの logging サブシステムの設定とほぼ同じです。

10.3.1. ルートロガー設定

JBoss EAP のルートロガーは、ロガーによってキャプチャーされない指定のログレベル以上ですべてのログメッセージをキャプチャーします。しかし、定義したロガーで use-parent-handlers が true に設定され、ハンドラーも定義されている場合、定義されたロガーとルートロガーの両方がメッセージの処理に使用されます。

デフォルトでは、ルートロガーは、server.log ファイルに書き込むコンソールと Periodic ログハンドラーを使用します。このファイルは一般的にサーバーログとして知られています。

10.3.2. JBoss EAP のログカテゴリー

ログカテゴリーは、キャプチャーするログメッセージのセットと、それらのメッセージを処理する 1 つ以上のログハンドラーを定義します。

ログメッセージは指定された送信元およびログレベルによって決定されます。任意の文字列値を指定できます。ただし、パッケージ名またはクラス名が推奨されます。ロガー名は、Logger.getLogger ("example.logger.name") のようにドット表記を使用して指定されます。ログマネージャーは名前の各セクションを処理し、一致する設定をチェックします。find and use-parent-handlers が false に設定されていると、プロセスは停止します。設定が定義されていないか、use-parent-handlers が true に設定されている場合には、ログマネージャーは example.logger などの親名を確認し続けます。ロガー設定は、パッケージまたはクラス名ではなく、ロガーの作成方法によって異なります。

注記

通常、ログカテゴリーは Java パッケージとクラス名に基づいていますが、Logger.getLogger (LOGGER_NAME) メソッドによって指定された名前にすることができます。

ロガーにはハンドラーを割り当てることができます。use-parent-handlersfalse に設定されている場合、ロガーによってログ可能なと判断された場合でも、上位レベルのロガーはメッセージを処理しません。たとえば、ロガー名が org.jboss.as.logging で、use-parent-handlers=false で設定されている場合、org.jboss.as ロガーはチェックされません。

10.3.3. JBoss EAP のログハンドラー

ログハンドラーは、エントリーの宛先および形式を指定して、キャプチャーされたログメッセージの記録方法を定義します。ログハンドラーのタイプを理解することは、さまざまなニーズに合わせた個別の目的に対応するため、効果的なロギング設定のために不可欠です。

注記

ログハンドラーは、少なくとも 1 つのロガーに追加してアクティブにする必要があります。

10.3.3.1. ログハンドラーの種類

ログハンドラーは、ログエントリーの処理および保存方法を決定するいくつかのタイプに分類されます。それぞれのタイプには、さまざまなロギング要件を満たすための個別の機能があります。

  • コンソール: ホストオペレーティングシステムの標準出力( stdout )または標準エラー( stderr )ストリームのいずれかにログメッセージを書き込みます。これらのメッセージは、JBoss EAP がコマンドラインプロンプトから実行されると表示されます。オペレーティングシステムで標準出力または標準エラーストリームをキャプチャーするように設定されていない限り、Console ログハンドラーからのメッセージは保存されません。
  • File: ログメッセージを指定されたファイルに書き込みます。
  • 定期的: 指定された時間が経過するまで、ログメッセージを名前付きファイルに書き込みます。その後、ファイルの名前はタイムスタンプで変更され、ハンドラーは元の名前で新しい作成されたログファイルに書き込みを継続します。
  • サイズ: ファイルが指定されたサイズに達するまで、ログメッセージを名前付きファイルに書き込みます。ファイルがそのサイズに達すると、数値の接尾辞が付いて名前が変更され、ハンドラーは元の名前で新規作成されたログファイルに書き込みを継続します。各サイズログハンドラーは、このような方法で保持するファイルの最大数を指定する必要があります。
  • Periodic Size: ファイルが指定されたサイズに達するか、指定の期間の有効期限が切れるまで、ログメッセージを名前付きファイルに書き込みます。その後、ハンドラーはファイルの名前を変更し、新規作成されたログファイルに元の名前で書き込みを継続します。このハンドラーは、Periodic ログハンドラーと Size ログハンドラーの両方の機能を組み合わせたものです。
  • syslog: リモートロギングサーバーにメッセージを送信します。これにより、複数のアプリケーションが同じサーバーにログメッセージを送信して解析を行うことができます。
  • socket: ソケットでログメッセージをリモートロギングサーバーに送信します。これは、TCP ソケットまたは UDP ソケットのいずれかを使用できます。
  • Custom: 新しいタイプのログハンドラーを設定できます。カスタムハンドラーは、java.util.logging.Handler を拡張し、モジュールに含める Java クラスとして実装する必要があります。Log4J アペンダーをカスタムログハンドラーとして使用することもできます。
  • async: 1 つ以上の他のログハンドラーの非同期動作を提供します。これは、ネットワークファイルシステムへのログファイルの書き込みなど、長い遅延やパフォーマンスの問題があるログハンドラーに役立ちます。

10.3.4. JBoss EAP でサポートされるログレベル

ログレベルとは、ログメッセージの性質と重大度を示す列挙値です。開発者は、このメッセージを送信するために選択したロギングフレームワークの適切なメソッドを使用してログメッセージのレベルを指定できます。

JBoss EAP は、サポートされるアプリケーションロギングフレームワークによって使用されるすべてのログレベルをサポートします。最も一般的に使用されるログレベルは、ログレベルの低い順に TRACEDEBUGINFOWARNERROR および FATAL となります。

ログレベルは、ログカテゴリーとハンドラーが処理するメッセージを制限するのに役立ちます。各ログレベルには、他のログレベルに対して相対的な順番を示す数値が割り当てられています。ログカテゴリーとハンドラーにはログレベルが割り当てられ、そのレベル以上のログメッセージのみを処理します。たとえば、WARN レベルのログハンドラーは、 WARN ERROR、および FATAL にメッセージを記録します。

Expand
表10.3 サポート対象のログレベル
ログのレベルValue説明

ALL

Integer.MIN_VALUE

すべてのログメッセージを提供します。

FINEST

300

-

FINER

400

-

TRACE

400

TRACE レベルのログメッセージは、実行中のアプリケーションの状態に関する詳細な情報を提供し、デバッグ時のみキャプチャーされます。

DEBUG

500

DEBUG レベルのログメッセージは、個々の要求またはアプリケーションアクティビティーの進捗状況を示し、通常はデバッグ時のみキャプチャーされます。

FINE

500

-

CONFIG

700

-

INFO

800

INFO レベルのログメッセージはアプリケーションの全体的な進捗状況を示します。多くの場合、アプリケーションの起動、シャットダウン、およびその他の主要なライフサイクルイベントに使用されます。

WARN

900

WARN レベルのログメッセージはエラーではないが、理想的とは見なされない状況を示します。WARN ログメッセージは将来のエラーを引き起こす可能性のある状況を示す可能性があります。

WARNING

900

-

ERROR

1000

ERROR レベルのログメッセージは、現在のアクティビティーや要求の完了を妨げる可能性があるが、アプリケーションの実行を停止しないエラーを示します。

SEVERE

1000

-

FATAL

1100

FATAL レベルのログメッセージは重大なサービス障害やアプリケーションのシャットダウンを引き起こす可能性があるイベントを示します。これにより、JBoss EAP のシャットダウンにつながる可能性があります。

OFF

Integer.MAX_VALUE

ログメッセージを表示しません。

注記

ALL は、最低ログレベルであり、すべてのログレベルのメッセージを含みます。ロギングの量は最も多くなります。

FATAL は、最大ログレベルであり、そのレベルのメッセージのみを含みます。ロギングの量は最も少なくなります。

10.3.5. JBoss EAP のログフォーマッター

ログフォーマッターはログメッセージのフォーマットに使用されます。named-formatter 属性を使用するとフォーマッターをログハンドラーに割り当てることができます。

10.3.5.1. ログフォーマッターのタイプ

ログエントリーがフォーマットされる方法を決定する複数のタイプに分類されたログフォーマッター。

logging サブシステムには 4 種類のフォーマッターが含まれます。

  • Pattern formatter: ログメッセージをプレーンテキストでフォーマットします。ログハンドラーの named-formatter 属性としてフォーマッターを使用する他に、最初にフォーマッターリソースを作成せずに formatter 属性として使用することもできます。
  • JSON formatter: ログメッセージを JSON 形式でフォーマットします。
  • XML formatter: ログメッセージを XML 形式でフォーマットします。
  • Custom formatter: ハンドラーで使用されます。ほとんどのログレコードは printf 形式でフォーマットされます。フォーマッターは、適切なフォーマットのために org.jboss.logmanager.ExtLogRecord#getFormattedMessage () の呼び出しが必要になる場合があります。

10.3.6. JBoss EAP でのロギング用のフィルター式

フィルター式。filter-spec 属性を使用して設定され、さまざまな基準に基づいてログメッセージを記録します。フィルターは、未フォーマットの raw メッセージに適用されます。フィルターはロガーまたはハンドラーに追加できますが、ハンドラーに配置されたフィルターよりもロガーフィルターが優先されます。

注記

ルートロガーに対して指定された filter-spec は他のロガーによって継承されません。ハンドラーごとに filter-spec を指定する必要があります。

以下の表は、ロギングに使用できるフィルター式について説明しています。

Expand
表10.4 ロギングのフィルター式
フィルター式説明

accept

すべてのログメッセージを許可します。

deny

すべてのログメッセージを拒否します。

not[filter expression]

単一のフィルター式の逆の値を返します。以下に例を示します。

not(match("WFLY"))

all[filter expression]

フィルター式のコンマ区切りリストから連結された値を返します。以下に例を示します。

all(match("WFLY"),match("WELD"))

any[filter expression]

フィルター式のコンマ区切りリストから 1 つの値を返します。以下に例を示します。

any(match("WFLY"),match("WELD"))

levelChange[level]

指定のレベルでログレコードを更新します。以下に例を示します。

levelChange(WARN)

levels[levels]

レベルのコンマ区切りリストにあるレベルの 1 つでログメッセージをフィルターします。以下に例を示します。

levels(DEBUG,INFO,WARN,ERROR)

levelRange[minLevel,maxLevel]

指定されたレベル範囲内でログメッセージをフィルターします。[ および ] は、含まれるレベルを示すために使用されます。( および ) は除外されるレベルを示すために使用されます。以下に例を示します。

  • levelRange[INFO,ERROR]

    • 最小レベルは INFO 以上で、最大レベルは ERROR 以下でなければなりません。
  • levelRange[DEBUG,ERROR)

    • 最小レベルは DEBUG 以上で、最大レベルは ERROR 未満でなければなりません。

match["pattern"]

提供される正規表現を使用してログメッセージをフィルターします。以下に例を示します。

match("WFLY\d+")

substitute["pattern","replacement value"]

最初の一致とパターン(最初の引数)を代替テキスト(2 番目の引数)に置き換えます。以下に例を示します。

substitute("WFLY","EAP")

substituteAll["pattern","replacement value"]

パターン(最初の引数)と一致したすべての値を代替テキスト(2 番目の引数)に置き換えます。以下に例を示します。

substituteAll("WFLY","EAP")

注記

管理 CLI を使用してフィルター式を設定する場合、フィルターテキストのコンマと引用符をエスケープして、値が文字列として正しく処理されるようにします。コンマと引用符の前にバックスラッシュ (\) を付け、式全体を引用符で囲む必要があります。以下は substituteAll("WFLY","YLFW") を適切にエスケープした例になります。

/subsystem=logging/console-handler=CONSOLE:write-attribute(name=filter-spec, value="substituteAll(\"WFLY\"\,\"YLFW\")")

10.3.7. JBoss EAP の暗黙的なロギングの依存関係

JBoss EAP の logging サブシステムはデフォルトで暗黙的なロギング API 依存関係をデプロイメントに追加します。add-logging-api-dependencies 属性を使用して、これらの暗黙的な依存関係をデプロイメントに追加するかどうかを管理できます。これは、デフォルトで true に設定されています。

これらの依存関係が追加されないようにするには、管理 CLI を使用して add-logging-api-dependencies 属性を false に設定します。

/subsystem=logging:write-attribute(name=add-logging-api-dependencies, value=false)
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る