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


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

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

10.3.1. ルートロガー設定

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

デフォルトでは、ルートロガーは console と periodic ログハンドラーを使用して、server.log ファイルに書き込みます。一般的に、このファイルはサーバーログと呼ばれます。

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

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

ログメッセージは、指定された発生元とログレベルによって決定されます。任意の文字列値を指定できます。ただし、パッケージ名またはクラス名が推奨されます。ロガー名はドット表記を使用して指定されます (例: Logger.getLogger("example.logger.name"))。ログマネージャーは名前の各セクションを処理し、一致する設定をチェックします。一致が検出され、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: ファイルが指定されたサイズに達するか、指定された期間が経過するまで、ログメッセージを名前付きファイルに書き込みます。その後、ハンドラーはファイルの名前を変更し、元の名前で新しく作成されたログファイルへの書き込みを続行します。このハンドラーは、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 レベルのログハンドラーは、WARNERROR、および 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. ログフォーマッターのタイプ

ログフォーマッターは、いくつかのタイプに分類され、そのタイプによりログエントリーのフォーマット方法が決まります。

ロギングサブシステムには 4 タイプのフォーマッターが含まれます。

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

10.3.6. JBoss EAP におけるロギングに使用するフィルター式

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

注記

ルートロガーに対して指定された 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
トップに戻る