第12章 JBoss EAP を用いたロギング

JBoss EAP は、EAP での内部使用とデプロイされたアプリケーションによる使用の両方で設定可能なロギング機能を提供します。logging サブシステムは JBoss LogManager を基盤とし、JBoss Logging だけでなくサードパーティーアプリケーションのロギングフレームワークを複数サポートします。

12.1. サーバーロギング

12.1.1. サーバーロギング

デフォルトでは、すべての JBoss EAP ログエントリーは server.log ファイルに書き込みされます。このファイルの場所は操作するモードによって異なります。

  • スタンドアロンサーバーの場合: EAP_HOME/standalone/log/server.log
  • 管理対象ドメインの場合: EAP_HOME/domain/servers/SERVER_NAME/log/server.log

このファイルはサーバーログとも呼ばれます。詳細は ルートロガー を参照してください。

12.1.2. 起動時のロギング

起動中に JBoss EAP は Java 環境と各サービスの起動に関する情報をログに記録します。このログは、トラブルシューティングに役に立ちます。デフォルトでは、すべてのログエントリーがサーバーログに書き込まれます。

起動時のロギング設定は logging.properties 設定ファイルに指定されます。この設定ファイルは JBoss EAP の logging サブシステムが起動し、引き継ぐまでアクティブになります。このファイルの場所は操作するモードによって異なります。

  • スタンドアロンサーバーの場合: EAP_HOME/standalone/configuration/logging.properties
  • 管理対象ドメインの場合:

    ドメインコントローラーおよびサーバーごとに 1 つの logging.properties ファイルがあります。

    • ドメインコントローラー: EAP_HOME/domain/configuration/logging.properties
    • サーバー: EAP_HOME/domain/servers/SERVER_NAME/data/logging.properties
警告

logging.propertiesファイルは、直接編集する必要があるユースケース以外では直接編集しないことが推奨されます。直接編集する前に、Red Hat カスタマーポータルでサポートケースを作成することが推奨されます。

logging.propertiesファイルに手動で行った変更は起動時に上書きされます。

12.1.2.1. 起動エラーの表示

JBoss EAP をトラブルシューティングする場合、最初に行うべきことの 1 つは、起動時に発生したエラーをチェックすることです。提供された情報を使用して原因を診断し、解決します。起動時のエラーをトラブルシューティングする際にサポートが必要な場合はサポートケースを作成してください。

起動時のエラーを表示する方法は 2 つあり、どちらも利点があります。1 つは server.log ファイルを確認する方法で、もう 1 つは read-boot-errors管理 CLI コマンドを使用してブートエラーを確認する方法になります。

サーバーログファイルの確認

server.log ファイルを開いて起動中に発生したエラーを確認します。

この方法では、各エラーメッセージおよび関連するメッセージを確認でき、エラーが発生した理由の詳細を知ることができます。また、エラーメッセージをプレーンテキスト形式で表示することもできます。

  1. ファイルビューアーで server.log を開きます。
  2. ファイルの最後に移動します。
  3. 最後の起動シーケンスの開始を示す WFLYSRV0049 メッセージ ID を後方検索します。
  4. ログのその位置から ERROR を前方検索します。各検索一致箇所には、エラーの説明が示され、関連するモジュールがリストされます。

以下は、server.log ログファイルのエラー説明の例です。

2016-03-16 14:32:01,627 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.undertow.listener.default: org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
        at org.wildfly.extension.undertow.ListenerService.start(ListenerService.java:142)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.BindException: Address already in use
        ...
管理 CLI からのブートエラーの読み取り

サーバーが起動しても起動中にエラーが報告された場合、read-boot-errors 管理 CLI コマンドを使用してエラーを確認できます。

この方法では、サーバーのファイルシステムにアクセスする必要がありません。したがって、エラーを監視する担当者がファイルシステムアクセスを持ってない場合に役に立ちます。これは CLI コマンドであるため、スクリプトで使用できます。たとえば、複数の JBoss EAP インスタンスを起動し、起動時に発生したエラーをチェックするスクリプトを記述できます。

次の管理 CLI コマンドを実行します。

/core-service=management:read-boot-errors

起動中に発生したすべてのエラーがリストされます。

{
    "outcome" => "success",
    "result" => [
        {
            "failed-operation" => {
                "operation" => "add",
                "address" => [
                    ("subsystem" => "undertow"),
                    ("server" => "default-server"),
                    ("http-listener" => "default")
                ]
            },
            "failure-description" => "{\"WFLYCTL0080: Failed services\" => {\"jboss.undertow.listener.default\" => \"org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
    Caused by: java.net.BindException: Address already in use\"}}",
            "failed-services" => {"jboss.undertow.listener.default" => "org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
    Caused by: java.net.BindException: Address already in use"}
        }
        ...
    ]
}

12.1.3. ガベッジコレクションのロギング

ガベッジコレクションロギングは、すべてのガベッジコレクションのアクティビティーをプレーンテキストのログファイルに記録します。これらのログファイルは診断を行うのに便利です。ガベッジコレクションロギングは、IBM の Java Development Kit を除くすべてのサポート対象設定の JBoss EAP スタンドアロンサーバーではデフォルトで有効になっています。

ガベッジコレクションログのデフォルトの場所は EAP_HOME/standalone/log/gc.log.DIGIT.current です。ガベッジコレクションのログは 3 MB ずつに制限され、最大 5 つのファイルがローテーションされます。

トラブルシューティングに便利で、オーバーヘッドは最低限であるため、ガベッジコレクションのロギングを有効にすることが強く推奨されます。しかし、スタンドアロンサーバーのガベッジコレクションのロギングを無効にする場合は、サーバーを起動する前に GC_LOG 変数を false に設定します。

$ export GC_LOG=false
$ EAP_HOME/bin/standalone.sh

12.1.4. デフォルトのログファイルの場所

以下のログファイルは、デフォルトのロギング設定に対して作成されます。デフォルトの設定では、周期的なログハンドラーを使用してサーバーログファイルが書き込まれます。

表12.1 スタンドアロンサーバーのデフォルトログファイル

ログファイル説明

EAP_HOME/standalone/log/server.log

サーバー起動メッセージを含むサーバーログメッセージが含まれます。

EAP_HOME/standalone/log/gc.log.DIGIT.current

ガベッジコレクションの詳細が含まれます。

表12.2 管理対象ドメイン用のデフォルトログファイル

ログファイル説明

EAP_HOME/domain/log/host-controller.log

ホストコントローラーの起動に関連するログメッセージが含まれます。

EAP_HOME/domain/log/process-controller.log

プロセスコントローラーの起動に関連するログメッセージが含まれます。

EAP_HOME/domain/servers/SERVER_NAME/log/server.log

サーバー起動メッセージを含む、名前付きサーバーのログメッセージが含まれます。

12.2. ログファイルの表示

サーバーやアプリケーションログの確認は、診断エラー、パフォーマンスの問題、およびその他の問題に対応するために重要です。サーバーのファイルシステムで直接ログを表示したいユーザーもいますが、直接ファイルシステムにアクセスできないユーザーやグラフィカルインターフェースを使用したいユーザーは JBoss EAP の管理コンソールからログを表示することができます。また、管理 CLI を使用してログを表示することもできます。

管理インターフェースの 1 つからログにアクセスするには、サーバーの jboss.server.log.dir プロパティーによって指定されたディレクトリーに存在し、File、Periodic rotating、Size rotating、または Periodic Size Rotating ログハンドラーとして定義される必要があります。RBAC ロール割り当ても考慮されるため、管理コンソールまたは管理 CLI にログインしたユーザーはアクセス権限を持つログのみ表示できます。

管理コンソールからのログの表示

管理コンソールから直接ログを表示できます。

  • Runtime タブを選択します。
  • Standalone Server を選択します。管理対象ドメインで実行している場合は適切なサーバーを選択します。
  • Log Files を選択し、View をクリックします。

リストからログファイルを選択すると、管理コンソールで直接ログの内容を表示および検索できます。ログファイルをローカルファイルシステムへダウンロードすることもできます。

警告

管理コンソールのログビューアーは、100MB 以上のログファイルなどの非常に大きなログファイルを表示するテキストエディターの代わりとして使用するものではありません。15MB を超えるログファイルを開こうとすると、確認を求められます。管理コンソールで非常に大きなファイルを開くと、ブラウザーがクラッシュする可能性があるため、大きなログファイルは常にローカルにダウンロードし、テキストエディターで開くようにしてください。

管理 CLI からのログの表示

read-log-file コマンドを使用すると管理 CLI からログファイルの内容を取得できます。デフォルトでは、指定されたログファイルの最後の 10 行が表示されます。

/subsystem=logging/log-file=LOG_FILE_NAME:read-log-file
注記

管理ドメインの場合では、このコマンドの前に /host=HOST_NAME/server=SERVER_NAME を追加します。

以下のパラメーターを使用するとログの出力をカスタマイズできます。

encoding
ファイルの読み取りに使用される文字エンコーディング。
lines
ファイルから読み取る行数。-1 はログの行すべてを取得します。デフォルトは 10 です。
skip
読み取る前にスキップする行数。デフォルトは 0 です。
tail
ファイルの最後から読み取るかどうか。デフォルトは true です。

たとえば、以下の管理 CLI コマンドは server.log ログファイルの最初の 5 行を読み取ります。

/subsystem=logging/log-file=server.log:read-log-file(lines=5,tail=false)

このコマンドを実行すると以下が出力されます。

{
    "outcome" => "success",
    "result" => [
        "2016-03-24 08:49:26,612 INFO  [org.jboss.modules] (main) JBoss Modules version 1.5.1.Final-redhat-1",
        "2016-03-24 08:49:26,788 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final-redhat-1",
        "2016-03-24 08:49:26,863 INFO  [org.jboss.as] (MSC service thread 1-7) WFLYSRV0049: JBoss EAP 7.0.0.GA (WildFly Core 2.0.13.Final-redhat-1) starting",
        "2016-03-24 08:49:27,973 INFO  [org.jboss.as.server] (Controller Boot Thread) WFLYSRV0039: Creating http management service using socket-binding (management-http)",
        "2016-03-24 08:49:27,994 INFO  [org.xnio] (MSC service thread 1-1) XNIO version 3.3.4.Final-redhat-1"
    ]
}

12.3. Logging サブシステム

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

ロギングプロファイル は、一意な名前が付けられたロギング設定の作成や、他のロギング設定に関係しないアプリケーションへの割り当てを可能にします。ロギングプロファイルの設定は、メインの logging サブシステムとほぼ同じです。

12.3.1. ルートロガー

JBoss EAP のルートロガーは、ログカテゴリーによってキャプチャーされないサーバーへ送信されたすべてのログメッセージ (指定のログレベル以上) をキャプチャーします。

デフォルトでは、ルートロガーはコンソールおよび周期ログハンドラーを使用するように設定されます。周期ログハンドラーは、server.log ファイルへ書き込むよう設定されます。このファイルはサーバーログとも呼ばれます。

詳細は ルートロガーの設定を参照してください。

12.3.2. ログカテゴリー

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

キャプチャーするログメッセージは、指定された元の Java パッケージとログレベルによって定義されます。そのパッケージのクラスおよびそのログレベル以上のメッセージがログカテゴリーによってキャプチャーされ、指定のログハンドラーに送信されます。

注記

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

ログカテゴリーは、独自のハンドラーの代わりにルートロガーのログハンドラーを任意で使用することができます。

詳細は ログカテゴリーの設定 を参照してください。

12.3.3. ログハンドラー

ログハンドラーはキャプチャーしたメッセージの記録方法を定義します。使用できるログハンドラーの種類は consolefileperiodicsizeperiodic sizesyslogcustom、および async です。

注記

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

ログハンドラーの種類
Console
Console ログハンドラーは、ログメッセージをホストオペレーティングシステムの標準出力 (stdout) または標準エラー (stderr) ストリームに書き込みます。これらのメッセージは、JBoss EAP がコマンドラインプロンプトから実行された場合に表示されます。オペレーティングシステムで標準出力または標準エラーストリームをキャプチャーするように設定されていない限り、Console ログハンドラーからのメッセージは保存されません。
File
File ログハンドラーは、ログメッセージを指定のファイルに書き込みます。
Periodic
Periodic ログハンドラーは、指定した時間が経過するまで、ログメッセージを指定ファイルに書き込みます。その時間が経過した後、指定のタイムスタンプが追記されてファイルの名前が変更され、 ハンドラーは元の名前で新規作成されたログファイルに書き込みを継続します。
Size
Size ログハンドラーは、指定したファイルが指定したサイズに達するまで、そのファイルにログメッセージを書き込みます。ファイルが指定したサイズに達すると、数値の接尾辞が付いて名前が変更され、ハンドラーは元の名前で新規作成されたログファイルに書き込みを継続します。各サイズログハンドラーは、この方式で保管されるファイルの最大数を指定する必要があります。
Periodic Size

Periodic Size ログハンドラーは、ファイルが指定のサイズに達するまで、または指定の期間が経過するまで、ログメッセージを名前の付いたファイルに書き込みます。その後、ファイルの名前が変更され、ハンドラーは元の名前で新規作成されたログファイルに書き込みを継続します。

これは Periodic と Size ログハンドラーの組み合わせで、組み合わされた属性をサポートします。

Syslog
syslog ハンドラーは、リモートのロギングサーバーへメッセージを送信するために使用できます。これにより、複数のアプリケーションが同じサーバーにログメッセージを送信でき、そのサーバーですべてのログメッセージを解析できます。
Custom
カスタムログハンドラーにより、実装された新たなタイプのログハンドラーを設定することができます。カスタムハンドラーは、java.util.logging.Handler を拡張する Java クラスとして実装し、モジュール内に格納する必要があります。Log4J アペンダーをカスタムログハンドラーとして使用することもできます。
Async
Async ログハンドラーは、 単一または複数のログハンドラーを対象とする非同期動作を提供するラッパーログハンドラーです。Async ログハンドラーは、待ち時間が長かったり、ネットワークファイルシステムへのログファイルの書き込みなどにパフォーマンス上の問題があるログハンドラーに対して有用です。

各ログハンドラーの設定に関する詳細は、ログハンドラーの設定 の項を参照してください。

12.3.4. ログレベル

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

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

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

サポート対象のログレベル
ログのレベル説明

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 は、最大ログレベルであり、そのレベルのメッセージのみを含みます。ロギングの量は最も少なくなります。

12.3.5. ログフォーマッター

ログフォーマッターは、そのハンドラーからのログメッセージの表示を定義します。java.util.logging.Formatter クラスを基にした構文を使用する文字列です。

たとえば、デフォルトの設定はサーバーログへのロギングメッセージのログフォーマッター文字列として %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n を使用します。これにより、以下のようなログメッセージが作成されます。

2016-03-18 15:49:32,075 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990

ログフォーマッターの設定に関する詳細は 名前付きパターンフォーマッターの設定 または カスタムログフォーマッターの設定を参照してください。

ログフォーマッター文字列で使用される構文は以下の表を参照してください。

ログフォーマッター構文
記号説明

%c

ロギングイベントのカテゴリー。

%p

ログエントリーのレベル (INFO、DEBUG など)

%P

ログエントリーのローカライズレベル。

%d

現在の日付/時間 (yyyy-MM-dd HH:mm:ss,SSS 形式)。

%r

相対時間 (ログ初期化以降のミリ秒単位の時間)。

%z

日付 (%d) の前に指定する必要があるタイムゾーン。例: %z{GMT}%d{HH:mm:ss,SSS}

%k

ログリソースキー (ログメッセージのローカリゼーションに使用)。

%m

ログメッセージ (例外トレースを含む)。

%s

単純なログメッセージ (例外トレースなし)。

%e

例外スタックトレース (拡張モジュール情報なし)。

%E

例外スタックトレース (拡張モジュール情報あり)。

%t

現在のスレッドの名前。

%n

改行文字。

%C

ログメソッドを呼び出すコードのクラス (低速)。

%F

ログメソッドを呼び出すクラスのファイル名 (低速)。

%l

ログメソッドを呼び出すコードのソースロケーション (低速)。

%L

ログメソッドを呼び出すコードの行番号 (低速)。

%M

ログメソッドを呼び出すコードのメソッド (低速)。

%x

ネスト化診断コンテキスト。

%X

メッセージ診断コンテキスト。

%%

リテラルパーセント (%) 記号 (エスケープ)。

12.3.6. フィルター式

フィルター式は filter-spec 属性を使用して設定され、さまざまな基準に基いてログメッセージを記録するために使用されます。フィルターチェックは、常に未フォーマットの raw メッセージに対して行われます。ロガーまたはハンドラーのフィルターを含めることができますが、ハンドラーに配置されたフィルターよりもロガーフィルターが優先されます。

注記

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

表12.3 ロギングのフィルター式

フィルター式説明

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\")")

12.3.7. 暗黙的なロギングの依存関係

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

管理 CLI を使用して add-logging-api-dependencies 属性を false に設定すると、暗黙的なロギング API 依存関係がデプロイメントに追加されないようになります。

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

logging サブシステムの暗黙的な依存関係については、JBoss EAP 開発ガイド暗黙的なモジュール依存関係 の項を参照してください。

12.4. ログカテゴリーの設定

ここでは、管理 CLI を使用したログカテゴリーの設定方法を説明します。管理コンソールを使用してログカテゴリーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択し、 Log Categories タブを選択します。

ログカテゴリーを設定するために実行する主なタスクは次のとおりです。

重要

ロギングプロファイルにログカテゴリーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

ログカテゴリーの追加

ログカテゴリー名は、元の Java パッケージによって定義されます。ログレベルなどのその他の設定に準拠する限り、そのパッケージのクラスからのメッセージはキャプチャーされます。

/subsystem=logging/logger=LOG_CATEGORY:add

ログカテゴリーの設定

必要性に応じて、以下のログカテゴリー属性を 1 つ以上設定する必要がある場合があります。利用できるログカテゴリー属性の完全リストと説明は、 ログカテゴリーの属性を参照してください。

  • ログレベルを設定します。

    ログカテゴリーの適切なログレベルを設定します。デフォルトは ALL です。利用できるオプションは、ログレベルを参照してください。

    /subsystem=logging/logger=LOG_CATEGORY:write-attribute(name=level,value=LEVEL)
  • このカテゴリーがルートロガーのログハンドラーを使用するかどうかを設定します。

    デフォルトでは、ログカテゴリーは独自のハンドラーと、ルートロガーのハンドラーを使用します。ログカテゴリーが割り当てられたハンドラーのみを使用する必要がある場合は use-parent-handlers 属性を false に設定します。

    /subsystem=logging/logger=LOG_CATEGORY:write-attribute(name=use-parent-handlers,value=USE_PARENT_HANDLERS)
  • フィルター式を設定します。

    ログカテゴリーのログメッセージをフィルターするために式を設定します。必ずコンマと引用符はエスケープし、引用符で囲むようにしてください。たとえば、以下の置換可能な FILTER_EXPRESSION 変数では、not(match("WFLY")) のフィルター式を"not(match(\"WFLY\"))" に置き換える必要があります。

    /subsystem=logging/logger=LOG_CATEGORY:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)

    利用可能なフィルター式の詳細は フィルター式 の項を参照してください。

ハンドラーの割り当て

ログハンドラーをログカテゴリーに割り当てます。

/subsystem=logging/logger=LOG_CATEGORY:add-handler(name=LOG_HANDLER_NAME)

ログカテゴリーの削除

ログカテゴリーは remove 操作で削除できます。

/subsystem=logging/logger=LOG_CATEGORY:remove

12.5. ログハンドラーの設定

ログハンドラーはキャプチャーされたログメッセージが記録される方法を定義します。以下の項を参照して必要なログハンドラーのタイプを設定してください。

12.5.1. Console ログハンドラーの設定

ここでは、管理 CLI を使用した Console ログハンドラーの設定方法を説明します。管理コンソールを使用して Console ログハンドラーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Handler タブを選択して、左側のメニューから Console を選択します。

Console ログハンドラーを設定するために実行する主なタスクは次のとおりです。

重要

ロギングプロファイルにログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

Console ログハンドラーの追加
/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:add
Console ログハンドラーの設定

必要性に応じて、以下の Console ログハンドラー属性を 1 つ以上設定する必要がある場合があります。利用できる Console ログハンドラー属性の完全リストと説明は、Console ログハンドラー属性を参照してください。

  • ログレベルを設定します。

    ハンドラーの適切なログレベルを設定します。デフォルトは ALL です。利用できるオプションは、ログレベルを参照してください。

    /subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
  • ターゲットを設定します。

    ハンドラーのターゲットを設定します。値は System.outSystem.errconsole のいずれかになります。デフォルト System.out です。

    /subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=target,value=TARGET)
  • エンコーディングを設定します。

    ハンドラーのエンコーディングを設定します (例: utf-8)。

    /subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
  • ログフォーマッターを設定します。

    ハンドラーのフォーマッター文字列を設定します。たとえば、デフォルトのフォーマット文字列は %d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n です。必ず FORMAT の値を引用符で囲んでください。

    /subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
    注記

    保存されたフォーマッター を参照する場合は named-formatter 属性を使用します。

  • 自動フラッシュを設定します。

    毎回書き込みの後に自動的にフラッシュするかどうかを設定します。デフォルトの値は true です。

    /subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
  • フィルター式を設定します。

    ハンドラーのログメッセージをフィルターするために式を設定します。必ずコンマと引用符はエスケープし、引用符で囲むようにしてください。たとえば、以下の置換可能な FILTER_EXPRESSION 変数では、not(match("WFLY")) のフィルター式を "not(match(\"WFLY\"))" に置き換える必要があります。

    /subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)

    利用可能なフィルター式の詳細は フィルター式 の項を参照してください。

Console ログハンドラーのロガーへの割り当て

ログハンドラーをアクティブにするには、ロガーに割り当てる必要があります。

以下の管理 CLI コマンドは Console ログハンドラーをルートロガーに割り当てます。

/subsystem=logging/root-logger=ROOT:add-handler(name=CONSOLE_HANDLER_NAME)

以下の管理 CLI コマンドは、名前が CATEGORY によって指定されるロガーに Console ログハンドラーを割り当てます。

/subsystem=logging/logger=CATEGORY:add-handler(name=CONSOLE_HANDLER_NAME)
Console ログハンドラーの削除

ログハンドラーは remove 操作で削除できます。ログハンドラーが現在ロガーまたは Async ログハンドラーに割り当てられている場合は削除できません。

/subsystem=logging/console-handler=CONSOLE_HANDLER_NAME:remove

12.5.2. File ログハンドラーの設定

ここでは、管理 CLI を使用した File ログハンドラーの設定方法を説明します。管理コンソールを使用して File ログハンドラーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Handler タブを選択して、左側のメニューから File を選択します。

File ログハンドラーを設定するために実行する主なタスクは以下のとおりです。

重要

ロギングプロファイルにログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

File ログハンドラーの追加

File ログハンドラーを追加する場合、 path および relative-to 属性で構成される file 属性を使用してファイルパスを指定する必要があります。path 属性を使用して名前を含むログのファイルパスを設定します (例: my-log.log)。オプションで relative-to 属性を使用すると path が名前付きのパスと相対的になるよう設定できます (例: jboss.server.log.dir)。

/subsystem=logging/file-handler=FILE_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH})
File ログハンドラーの設定

必要性に応じて、以下の File ログハンドラー属性を 1 つ以上設定する必要がある場合があります。利用できる File ログハンドラー属性の完全リストと説明は、File ログハンドラー属性を参照してください。

  • ログレベルを設定します。

    ハンドラーの適切なログレベルを設定します。デフォルトは ALL です。利用できるオプションは、ログレベルを参照してください。

    /subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
  • 追加動作を設定します。

    デフォルトでは、サーバーが再起動されたときに JBoss EAP はログメッセージを同じファイルに追加します。サーバーの再起動時にファイルを上書きする場合は append 属性を false に設定します。

    /subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=append,value=APPEND)
  • エンコーディングを設定します。

    ハンドラーのエンコーディングを設定します (例: utf-8)。

    /subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
  • ログフォーマッターを設定します。

    ハンドラーのフォーマッター文字列を設定します。たとえば、デフォルトのフォーマット文字列は %d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n です。必ず FORMAT の値を引用符で囲んでください。

    /subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
    注記

    保存されたフォーマッター を参照する場合は named-formatter 属性を使用します。

  • 自動フラッシュを設定します。

    毎回書き込みの後に自動的にフラッシュするかどうかを設定します。デフォルトの値は true です。

    /subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
  • フィルター式を設定します。

    ハンドラーのログメッセージをフィルターするために式を設定します。必ずコンマと引用符はエスケープし、引用符で囲むようにしてください。たとえば、以下の置換可能な FILTER_EXPRESSION 変数では、not(match("WFLY")) のフィルター式を "not(match(\"WFLY\"))" に置き換える必要があります。

    /subsystem=logging/file-handler=FILE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)

    利用可能なフィルター式の詳細は フィルター式 の項を参照してください。

File ログハンドラーのロガーへの割り当て

ログハンドラーをアクティブにするには、ロガーに割り当てる必要があります。

以下の管理 CLI コマンドは File ログハンドラーをルートロガーに割り当てます。

/subsystem=logging/root-logger=ROOT:add-handler(name=FILE_HANDLER_NAME)

以下の管理 CLI コマンドは、名前が CATEGORY によって指定されるロガーに File ログハンドラーを割り当てます。

/subsystem=logging/logger=CATEGORY:add-handler(name=FILE_HANDLER_NAME)
File ログハンドラーの削除

ログハンドラーは remove 操作で削除できます。ログハンドラーが現在ロガーまたは Async ログハンドラーに割り当てられている場合は削除できません。

/subsystem=logging/file-handler=FILE_HANDLER_NAME:remove

12.5.3. Periodic Rotating ログハンドラーの設定

ここでは、管理 CLI を使用した Periodic Rotating ログハンドラーの設定方法を説明します。管理コンソールを使用して Periodic ログハンドラーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Handler タブを選択して、左側のメニューから Periodic を選択します。

周期ログハンドラーを設定するために実行する主なタスクは以下のとおりです。

重要

ロギングプロファイルにログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

Periodic ログハンドラーの追加

Periodic ログハンドラーを追加する場合、 path および relative-to 属性で構成される file 属性を使用してファイルパスを指定する必要があります。path 属性を使用して名前を含むログのファイルパスを設定します (例: my-log.log)。オプションで relative-to 属性を使用すると path が名前付きのパスと相対的になるよう設定できます (例: jboss.server.log.dir)。

また、suffix 属性を使用してローテーションしたログの接尾辞を設定する必要もあります。これは、 .yyyy-MM-dd-HH のように java.text.SimpleDateFormat が認識できる形式でなければなりません。ローテーションの周期はこの接尾辞を基に自動的に算出されます。

/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH},suffix=SUFFIX)
Periodic ログハンドラーの設定

必要性に応じて、以下の Periodic ログハンドラー属性を 1 つ以上設定する必要がある場合があります。利用できる Periodic ログハンドラー属性の完全リストと説明は、Periodic ログハンドラー属性を参照してください。

  • ログレベルを設定します。

    ハンドラーの適切なログレベルを設定します。デフォルトは ALL です。利用できるオプションは、ログレベルを参照してください。

    /subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
  • 追加動作を設定します。

    デフォルトでは、サーバーが再起動されたときに JBoss EAP はログメッセージを同じファイルに追加します。サーバーの再起動時にファイルを上書きする場合は append 属性を false に設定します。

    /subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=append,value=APPEND)
  • エンコーディングを設定します。

    ハンドラーのエンコーディングを設定します (例: utf-8)。

    /subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
  • ログフォーマッターを設定します。

    ハンドラーのフォーマッター文字列を設定します。たとえば、デフォルトのフォーマット文字列は %d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n です。必ず FORMAT の値を引用符で囲んでください。

    /subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
    注記

    保存されたフォーマッター を参照する場合は named-formatter 属性を使用します。

  • 自動フラッシュを設定します。

    毎回書き込みの後に自動的にフラッシュするかどうかを設定します。デフォルトの値は true です。

    /subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
  • フィルター式を設定します。

    ハンドラーのログメッセージをフィルターするために式を設定します。必ずコンマと引用符はエスケープし、引用符で囲むようにしてください。たとえば、以下の置換可能な FILTER_EXPRESSION 変数では、not(match("WFLY")) のフィルター式を "not(match(\"WFLY\"))" に置き換える必要があります。

    /subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)

    利用可能なフィルター式の詳細は フィルター式 の項を参照してください。

Periodic ログハンドラーのロガーへの割り当て

ログハンドラーをアクティブにするには、ロガーに割り当てる必要があります。

以下の管理 CLI コマンドは Periodic ログハンドラーをルートロガーに割り当てます。

/subsystem=logging/root-logger=ROOT:add-handler(name=PERIODIC_HANDLER_NAME)

以下の管理 CLI コマンドは、名前が CATEGORY によって指定されるロガーに Periodic ログハンドラーを割り当てます。

/subsystem=logging/logger=CATEGORY:add-handler(name=PERIODIC_HANDLER_NAME)
Periodic ログハンドラーの削除

ログハンドラーは remove 操作で削除できます。ログハンドラーが現在ロガーまたは Async ログハンドラーに割り当てられている場合は削除できません。

/subsystem=logging/periodic-rotating-file-handler=PERIODIC_HANDLER_NAME:remove

12.5.4. Size Rotating ログハンドラーの設定

ここでは、管理 CLI を使用した Size Rotating ログハンドラーの設定方法を説明します。管理コンソールを使用して Size ログハンドラーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Handler タブを選択して、左側のメニューから Size を選択します。

Size ログハンドラーを設定するために実行する主なタスクは以下のとおりです。

重要

ロギングプロファイルにログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

Size ログハンドラーの追加

Size ログハンドラーを追加する場合、 path および relative-to 属性で構成される file 属性を使用してファイルパスを指定する必要があります。path 属性を使用して名前を含むログのファイルパスを設定します (例: my-log.log)。オプションで relative-to 属性を使用すると path が名前付きのパスと相対的になるよう設定できます (例: jboss.server.log.dir)。

/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH})
Size ログハンドラーの設定

必要性に応じて、以下の Size ログハンドラー属性を 1 つ以上設定する必要がある場合があります。利用できる Size ログハンドラー属性の完全リストと説明は、Size ログハンドラー属性を参照してください。

  • ログレベルを設定します。

    ハンドラーの適切なログレベルを設定します。デフォルトは ALL です。利用できるオプションは、ログレベルを参照してください。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
  • ローテーションされるログの接尾辞を設定します。

    接尾辞の文字列を設定します。これは .yyyy-MM-dd-HH のように java.text.SimpleDateFormat が認識できる形式でなければなりません。ローテーションの周期はこの接尾辞を基に自動的に算出されます。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=suffix, value=SUFFIX)
  • ローテーションサイズを設定します。

    ファイルの最大サイズを設定します。この値を超えるとファイルがローテーションされます。デフォルトは 2 メガバイトを意味する 2m です。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=rotate-size, value=ROTATE_SIZE)
  • 保持するバックアップログの最大数の設定

    保持するバックアップの数を設定します。デフォルトは 1 です。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=max-backup-index, value=MAX_BACKUPS)
  • 起動時にログをローテーションするかどうかを設定します。

    デフォルトでは、サーバーの再起動時に新しいログファイルは作成されません。サーバーの再起動時にログをローテーションするには、true に設定します。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=rotate-on-boot, value=ROTATE_ON_BOOT)
  • 追加動作を設定します。

    デフォルトでは、サーバーが再起動されたときに JBoss EAP はログメッセージを同じファイルに追加します。サーバーの再起動時にファイルを上書きする場合は append 属性を false に設定します。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=append,value=APPEND)
  • エンコーディングを設定します。

    ハンドラーのエンコーディングを設定します (例: utf-8)。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
  • ログフォーマッターを設定します。

    ハンドラーのフォーマッター文字列を設定します。たとえば、デフォルトのフォーマット文字列は %d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n です。必ず FORMAT の値を引用符で囲んでください。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
    注記

    保存されたフォーマッター を参照する場合は named-formatter 属性を使用します。

  • 自動フラッシュを設定します。

    毎回書き込みの後に自動的にフラッシュするかどうかを設定します。デフォルトの値は true です。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
  • フィルター式を設定します。

    ハンドラーのログメッセージをフィルターするために式を設定します。必ずコンマと引用符はエスケープし、引用符で囲むようにしてください。たとえば、以下の置換可能な FILTER_EXPRESSION 変数では、not(match("WFLY")) のフィルター式を "not(match(\"WFLY\"))" に置き換える必要があります。

    /subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)

    利用可能なフィルター式の詳細は フィルター式 の項を参照してください。

Size ログハンドラーのロガーへの割り当て

ログハンドラーをアクティブにするには、ロガーに割り当てる必要があります。

以下の管理 CLI コマンドは Size ログハンドラーをルートロガーに割り当てます。

/subsystem=logging/root-logger=ROOT:add-handler(name=SIZE_HANDLER_NAME)

以下の管理 CLI コマンドは、名前が CATEGORY によって指定されるロガーに Size ログハンドラーを割り当てます。

/subsystem=logging/logger=CATEGORY:add-handler(name=SIZE_HANDLER_NAME)
Size ログハンドラーの削除

ログハンドラーは remove 操作で削除できます。ログハンドラーが現在ロガーまたは Async ログハンドラーに割り当てられている場合は削除できません。

/subsystem=logging/size-rotating-file-handler=SIZE_HANDLER_NAME:remove

12.5.5. Periodic Size Rotating ログハンドラーの設定

ここでは、管理 CLI を使用した Periodic Size ログハンドラーの設定方法を説明します。管理コンソールを使用して Periodic Size ログハンドラーを設定することもできます。管理コンソールを使用する場合は Logging サブシステムに移動し、Handler タブを選択して、左側のメニューから Periodic Size を選択します。

Periodic Size ログハンドラーを設定するために実行する主なタスクは以下のとおりです。

重要

ロギングプロファイルにログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

Periodic Size ログハンドラーの追加

Periodic Size ログハンドラーを追加する場合、 path および relative-to 属性で構成される file 属性を使用してファイルパスを指定する必要があります。path 属性を使用して名前を含むログのファイルパスを設定します (例: my-log.log)。オプションで relative-to 属性を使用すると path が名前付きのパスと相対的になるよう設定できます (例: jboss.server.log.dir)。

また、suffix 属性を使用してローテーションしたログの接尾辞を設定する必要もあります。これは、 .yyyy-MM-dd-HH のように java.text.SimpleDateFormat が認識できる形式でなければなりません。ローテーションの周期はこの接尾辞を基に自動的に算出されます。

/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:add(file={path=FILE_PATH,relative-to=RELATIVE_TO_PATH},suffix=SUFFIX)
Periodic Size ログハンドラーの設定

必要性に応じて、以下の Periodic Size ログハンドラー属性を 1 つ以上設定する必要がある場合があります。利用できる Periodic Size ログハンドラー属性の完全リストと説明は、Periodic Size ログハンドラー属性を参照してください。

  • ログレベルを設定します。

    ハンドラーの適切なログレベルを設定します。デフォルトは ALL です。利用できるオプションは、ログレベルを参照してください。

    /subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
  • ローテーションサイズを設定します。

    ファイルの最大サイズを設定します。この値を超えるとファイルがローテーションされます。デフォルトは 2 メガバイトを意味する 2m です。

    /subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=rotate-size, value=ROTATE_SIZE)
  • 保持するバックアップログの最大数の設定

    保持するバックアップの数を設定します。デフォルトは 1 です。

    /subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=max-backup-index, value=MAX_BACKUPS)
  • 起動時にログをローテーションするかどうかを設定します。

    デフォルトでは、サーバーの再起動時に新しいログファイルは作成されません。サーバーの再起動時にログをローテーションするには、true に設定します。

    /subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=rotate-on-boot, value=ROTATE_ON_BOOT)
  • 追加動作を設定します。

    デフォルトでは、サーバーが再起動されたときに JBoss EAP はログメッセージを同じファイルに追加します。サーバーの再起動時にファイルを上書きする場合は append 属性を false に設定します。

    /subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=append,value=APPEND)
  • エンコーディングを設定します。

    ハンドラーのエンコーディングを設定します (例: utf-8)。

    /subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
  • ログフォーマッターを設定します。

    ハンドラーのフォーマッター文字列を設定します。たとえば、デフォルトのフォーマット文字列は %d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n です。必ず FORMAT の値を引用符で囲んでください。

    /subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
    注記

    保存されたフォーマッター を参照する場合は named-formatter 属性を使用します。

  • 自動フラッシュを設定します。

    毎回書き込みの後に自動的にフラッシュするかどうかを設定します。デフォルトの値は true です。

    /subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=autoflush,value=AUTO_FLUSH)
  • フィルター式を設定します。

    ハンドラーのログメッセージをフィルターするために式を設定します。必ずコンマと引用符はエスケープし、引用符で囲むようにしてください。たとえば、以下の置換可能な FILTER_EXPRESSION 変数では、not(match("WFLY")) のフィルター式を "not(match(\"WFLY\"))" に置き換える必要があります。

    /subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)

    利用可能なフィルター式の詳細は フィルター式 の項を参照してください。

Periodic Size ログハンドラーのロガーへの割り当て

ログハンドラーをアクティブにするには、ロガーに割り当てる必要があります。

以下の管理 CLI コマンドは Periodic Size ログハンドラーをルートロガーに割り当てます。

/subsystem=logging/root-logger=ROOT:add-handler(name=PERIODIC_SIZE_HANDLER_NAME)

以下の管理 CLI コマンドは、名前が CATEGORY によって指定されるロガーに Periodic Size ログハンドラーを割り当てます。

/subsystem=logging/logger=CATEGORY:add-handler(name=PERIODIC_SIZE_HANDLER_NAME)
Periodic Size ログハンドラーの削除

ログハンドラーは remove 操作で削除できます。ログハンドラーが現在ロガーまたは Async ログハンドラーに割り当てられている場合は削除できません。

/subsystem=logging/periodic-size-rotating-file-handler=PERIODIC_SIZE_HANDLER_NAME:remove

12.5.6. Syslog ハンドラーの設定

ここでは、Syslog プロトコル (RFC-3164 または RFC-5424) をサポートするリモートロギングサーバーへのメッセージの送信に使用される、管理 CLI を使用した Syslog ハンドラーの設定方法を説明します。管理コンソールを使用して Syslog ハンドラーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Handler タブを選択して、左側のメニューから Syslog を選択します。

Syslog ハンドラーを設定するために実行する主なタスクは以下のとおりです。

重要

ロギングプロファイルにログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

Syslog ハンドラーの追加
/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:add
Syslog ハンドラーの設定

必要性に応じて、以下の Syslog ハンドラー属性を 1 つ以上設定する必要がある場合があります。利用できる Syslog ハンドラー属性の完全リストと説明は、Syslog ハンドラー属性を参照してください。

  • ハンドラーのログレベルを設定します。デフォルトのレベルは ALL です。利用できるオプションは、ログレベルを参照してください。

    /subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
  • ログに記録するアプリケーションの名前を設定します。デフォルトの名前は java です。

    /subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=app-name,value=APP_NAME)
  • Syslog サーバーのアドレスを設定します。デフォルトのアドレスは localhost です。

    /subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=server-address,value=SERVER_ADDRESS)
  • syslog サーバーのポートを設定します。デフォルトのポートは 514 です。

    /subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=port,value=PORT)
  • RFC 仕様の定義どおりに syslog 形式を設定します。デフォルトの形式は RFC5424 です。

    /subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:write-attribute(name=syslog-format,value=SYSLOG_FORMAT)
Syslog ハンドラーのロガーへの割り当て

ログハンドラーをアクティブにするには、ロガーに割り当てる必要があります。

以下の管理 CLI コマンドは Syslog ハンドラーをルートロガーに割り当てます。

/subsystem=logging/root-logger=ROOT:add-handler(name=SYSLOG_HANDLER_NAME)

以下の管理 CLI コマンドは、名前が CATEGORY によって指定されるロガーに Syslog ハンドラーを割り当てます。

/subsystem=logging/logger=CATEGORY:add-handler(name=SYSLOG_HANDLER_NAME)
Syslog ハンドラーの削除

ログハンドラーは remove 操作で削除できます。ログハンドラーが現在ロガーまたは Async ログハンドラーに割り当てられている場合は削除できません。

/subsystem=logging/syslog-handler=SYSLOG_HANDLER_NAME:remove

12.5.7. カスタムログハンドラーの設定

ここでは、管理 CLI を使用したカスタムログハンドラーの設定方法を説明します。管理コンソールを使用してカスタムログハンドラーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Handler タブを選択して、左側のメニューから Custom を選択します。

カスタムログハンドラーを設定するために実行する主なタスクは以下のとおりです。

重要

ロギングプロファイルにログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

カスタムログハンドラーの追加

カスタムログハンドラーを追加する場合、ハンドラーの Java クラスとハンドラーが含まれる JBoss EAP モジュールを指定する必要があります。クラスは java.util.logging.Handler を拡張する必要があります。

注記

すでに、カスタムロガーが含まれるモジュールが作成 されている必要があります。作成されていないと、このコマンドの実行に失敗します。

/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:add(class=CLASS_NAME,module=MODULE_NAME)
カスタムログハンドラーの設定

必要性に応じて、以下のカスタムログハンドラー属性を 1 つ以上設定する必要がある場合があります。利用できるカスタムログハンドラー属性の完全リストと説明は、カスタムログハンドラー属性を参照してください。

  • ログレベルを設定します。

    ハンドラーの適切なログレベルを設定します。デフォルトは ALL です。利用できるオプションは、ログレベルを参照してください。

    /subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
  • プロパティーを設定します。

    ログハンドラーに必要なプロパティーを設定します。setter メソッドを使用してプロパティーにアクセスできなければなりません。

    /subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)
  • エンコーディングを設定します。

    ハンドラーのエンコーディングを設定します (例: utf-8)。

    /subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=encoding,value=ENCODING)
  • ログフォーマッターを設定します。

    ハンドラーのフォーマッター文字列を設定します。たとえば、デフォルトのフォーマット文字列は %d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n です。必ず FORMAT の値を引用符で囲んでください。

    /subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=formatter,value=FORMAT)
    注記

    保存されたフォーマッター を参照する場合は named-formatter 属性を使用します。

  • フィルター式を設定します。

    ハンドラーのログメッセージをフィルターするために式を設定します。必ずコンマと引用符はエスケープし、引用符で囲むようにしてください。たとえば、以下の置換可能な FILTER_EXPRESSION 変数では、not(match("WFLY")) のフィルター式を "not(match(\"WFLY\"))" に置き換える必要があります。

    /subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)

    利用可能なフィルター式の詳細は フィルター式 の項を参照してください。

カスタムログハンドラーのロガーへの割り当て

ログハンドラーをアクティブにするには、ロガーに割り当てる必要があります。

以下の管理 CLI コマンドは、カスタムログハンドラーをルートロガーに割り当てます。

/subsystem=logging/root-logger=ROOT:add-handler(name=CUSTOM_HANDLER_NAME)

以下の管理 CLI コマンドは、名前が CATEGORY によって指定されるロガーにカスタムログハンドラーを割り当てます。

/subsystem=logging/logger=CATEGORY:add-handler(name=CUSTOM_HANDLER_NAME)
カスタムログハンドラーの削除

ログハンドラーは remove 操作で削除できます。ログハンドラーが現在ロガーまたは Async ログハンドラーに割り当てられている場合は削除できません。

/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:remove

12.5.8. Async ログハンドラーの設定

ここでは、管理 CLI を使用した Async ログハンドラーの設定方法を説明します。管理コンソールを使用して Async ログハンドラーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Handler タブを選択して、左側のメニューから Async を選択します。

Async ログハンドラーを設定するために実行する主なタスクは以下のとおりです。

重要

ロギングプロファイルにログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

Async ログハンドラーの追加

Async ログハンドラーを追加するときにキューの長さを指定する必要があります。これは、キューに保持できるログリクエストの最大数のことです。

/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:add(queue-length=QUEUE_LENGTH)
サブハンドラーの追加

1 つ以上のハンドラーを Async ログハンドラーのサブハンドラーとして追加できます。ハンドラーが設定に存在しないと、このコマンドの実行に失敗するため注意してください。

/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:add-handler(name=HANDLER_NAME)
Async ログハンドラーの設定

必要性に応じて、以下の Async ログハンドラー属性を 1 つ以上設定する必要がある場合があります。利用できる Async ログハンドラー属性の完全リストと説明は、Async ログハンドラー属性を参照してください。

  • ログレベルを設定します。

    ハンドラーの適切なログレベルを設定します。デフォルトは ALL です。利用できるオプションは、ログレベルを参照してください。

    /subsystem=logging/async-handler=ASYNC_HANDLER_NAME:write-attribute(name=level,value=LEVEL)
  • オーバーフローアクションを設定します。

    オーバーフローが発生したときに行うアクションを設定します。デフォルトの値は BLOCK で、キューが満杯になるとスレッドがブロックされます。この値を DISCARD に変更すると、キューが満杯になったときにログメッセージが破棄されます。

    /subsystem=logging/async-handler=ASYNC_HANDLER_NAME:write-attribute(name=overflow-action,value=OVERFLOW_ACTION)
  • フィルター式を設定します。

    ハンドラーのログメッセージをフィルターするために式を設定します。必ずコンマと引用符はエスケープし、引用符で囲むようにしてください。たとえば、以下の置換可能な FILTER_EXPRESSION 変数では、not(match("WFLY")) のフィルター式を "not(match(\"WFLY\"))" に置き換える必要があります。

    /subsystem=logging/async-handler=ASYNC_HANDLER_NAME:write-attribute(name=filter-spec, value=FILTER_EXPRESSION)

    利用可能なフィルター式の詳細は フィルター式 の項を参照してください。

Async ログハンドラーのロガーへの割り当て

ログハンドラーをアクティブにするには、ロガーに割り当てる必要があります。

以下の管理 CLI コマンドは Async ログハンドラーをルートロガーに割り当てます。

/subsystem=logging/root-logger=ROOT:add-handler(name=ASYNC_HANDLER_NAME)

以下の管理 CLI コマンドは、名前が CATEGORY によって指定されるロガーに Async ログハンドラーを割り当てます。

/subsystem=logging/logger=CATEGORY:add-handler(name=ASYNC_HANDLER_NAME)
Async ログハンドラーの削除

ログハンドラーは remove 操作で削除できます。ログハンドラーが現在ロガーに割り当てられている場合は削除できません。

/subsystem=logging/async-handler=ASYNC_HANDLER_NAME:remove

12.6. ルートロガーの設定

ルートロガーは、ログカテゴリーによってキャプチャーされないサーバーへ送信されたすべてのログメッセージ (指定のログレベル以上) をキャプチャーします。

ここでは、管理 CLI を使用したルートロガーの設定方法を説明します。管理コンソールを使用してルートロガーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択し、 Root Logger タブを選択します。

ルートロガーの設定

重要

ロギングプロファイルにログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

  1. ログハンドラーをルートロガーへ割り当てます。

    ログハンドラーを追加します。

    /subsystem=logging/root-logger=ROOT:add-handler(name=LOG_HANDLER_NAME)

    ログハンドラーの削除

    /subsystem=logging/root-logger=ROOT:remove-handler(name=LOG_HANDLER_NAME)
  2. ログレベルを設定します。

    /subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=LEVEL)

使用できるルートロガー属性とその説明の完全リストは、 ルートロガー属性 を参照してください。

12.7. ログフォーマッターの設定

ログフォーマッターはそのハンドラーからログメッセージの表示を定義します。 名前付きパターンフォーマッターまたはカスタムログフォーマッターを設定できます。

12.7.1. 名前付きパターンフォーマッターの設定

ログハンドラーすべてで使用できる名前付きパターンフォーマッターを作成して、ログメッセージをフォーマットすることができます。

ここでは、管理 CLI を使用したログフォーマッターの設定方法を説明します。管理コンソールを使用してログフォーマッターを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Formatter タブを選択して、左側のメニューから Pattern を選択します。

重要

ロギングプロファイルにログフォーマッターを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

名前付きフォーマッターの作成

フォーマッターを定義するとき、ログメッセージのフォーマットに使用するパターン文字列を指定します。パターン構文の詳細は、ログフォーマッターを参照してください。

/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:add(pattern=PATTERN_STRING)

また、カラーマップを定義してログレベルごとに色を割り当てることもできます。形式は LEVEL:COLOR のカンマ区切りリストです。

  • 有効なレベル: finestfinerfineconfigtracedebuginfowarningwarnerrorfatalsevere
  • 有効な色: blackgreenredyellowbluemagentacyanwhitebrightblackbrightredbrightgreenbrightbluebrightyellowbrightmagentabrightcyanbrightwhite
/subsystem=logging/pattern-formatter=PATTERN_FORMATTER_NAME:write-attribute(name=color-map,value="LEVEL:COLOR,LEVEL:COLOR")
名前付きフォーマッターのログハンドラーへの割り当て

以下の管理 CLI コマンドは、Periodic Rotating ファイルハンドラーによって使用されるパターンフォーマッターを割り当てます。

/subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter,value=PATTERN_FORMATTER_NAME)

12.7.2. カスタムログフォーマッターの設定

ログハンドラーすべてで使用できるカスタムログフォーマッターを作成して、ログメッセージをフォーマットすることができます。

ここでは、管理 CLI を使用したカスタムログフォーマッターの設定方法を説明します。管理コンソールを使用してログフォーマッターを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Formatter タブを選択して、左側のメニューから Custom を選択します。

カスタムログフォーマッターの設定
重要

ロギングプロファイルにログフォーマッターを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。

さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。

  1. カスタムログフォーマッターを追加します。

    カスタムログフォーマッターを追加する場合、フォーマッターの Java クラスとフォーマッターが含まれる JBoss EAP モジュールを指定する必要があります。クラスは java.util.logging.Formatter を拡張する必要があります。

    注記

    すでに、カスタムフォーマッターが含まれるモジュールが作成されている必要があります。作成されていないと、このコマンドの実行に失敗します。

    /subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)
  2. ログフォーマッターに必要なプロパティーを設定します。

    setter メソッドを使用してプロパティーにアクセスできなければなりません。

    /subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)
  3. カスタムフォーマッターをログハンドラーに割り当てます。

    以下の管理 CLI コマンドは、Periodic Rotating ファイルハンドラーによって使用されるカスタムフォーマッターを割り当てます。

    /subsystem=logging/periodic-rotating-file-handler=FILE_HANDLER_NAME:write-attribute(name=named-formatter, value=CUSTOM_FORMATTER_NAME)
カスタム XML フォーマッターの例

以下の例は、カスタム XML フォーマッターを設定します。 org.jboss.logmanager モジュールに提供される java.util.logging.XMLFormatter クラスを使用し、Console ログハンドラーに割り当てます。

/subsystem=logging/custom-formatter=custom-xml-formatter:add(class=java.util.logging.XMLFormatter, module=org.jboss.logmanager)
/subsystem=logging/console-handler=CONSOLE:write-attribute(name=named-formatter, value=custom-xml-formatter)

このフォーマッターを使用するログメッセージは以下のようにフォーマットされます。

<record>
  <date>2016-03-23T12:58:13</date>
  <millis>1458752293091</millis>
  <sequence>93963</sequence>
  <logger>org.jboss.as</logger>
  <level>INFO</level>
  <class>org.jboss.as.server.BootstrapListener</class>
  <method>logAdminConsole</method>
  <thread>22</thread>
  <message>WFLYSRV0051: Admin console listening on http://%s:%d</message>
  <param>127.0.0.1</param>
  <param>9990</param>
</record>

12.8. アプリケーションのロギング

アプリケーションのロギングは、JBoss EAP の logging サブシステムを使用するか、デプロイメントごとに設定できます。

ログメッセージの取得に JBoss EAP ログカテゴリーおよびハンドラーを使用する方法は Logging サブシステム を参照してください。

サポートされるアプリケーションロギングフレームワークやデプロイメントごとのロギング設定など、アプリケーションロギングの詳細は JBoss EAP 開発ガイドロギングの章を参照してください。

12.8.1. デプロイメントごとのロギング

デプロイメントごとのロギングを使用すると、開発者はアプリケーションのロギング設定を事前に設定できます。アプリケーションがデプロイされると、定義された設定に従ってロギングが開始されます。この設定によって作成されたログファイルにはアプリケーションの動作に関する情報のみが含まれます。

注記

デプロイメントごとのロギング設定が行われない場合、すべてのアプリケーションとサーバーには logging サブシステムの設定が使用されます。

この方法では、システム全体のロギングを使用する利点と欠点があります。利点は、JBoss EAP インスタンスの管理者がサーバーロギング以外のロギングを設定する必要がないことです。欠点は、デプロイメントごとのロギング設定はサーバーの起動時に読み取り専用であるため、実行時に変更できないことです。

アプリケーションでデプロイメントごとのロギングを使用する手順については、JBoss EAP 開発ガイドデプロイメントごとのロギングをアプリケーションに追加を参照してください。

12.8.1.1. デプロイメントごとのロギングの無効化

以下の方法の 1 つを使用するとデプロイメントごとのロギングを無効にできます。

  • use-deployment-logging-config 属性を false に設定します。

    use-deployment-logging-config 属性は、デプロイメントがデプロイメントごとにロギングに対してスキャンされるかどうかを制御します。デフォルトは true です。デプロイメントごとのロギングを無効にするにはこの属性を false に設定します。

    /subsystem=logging:write-attribute(name=use-deployment-logging-config,value=false)
  • jboss-deployment-structure.xml ファイルを使用して logging サブシステムを除外します。

    手順については、JBoss EAP 開発ガイドサブシステムをデプロイメントから除外を参照してください。

12.8.2. ロギングプロファイル

ロギングプロファイルは、デプロイされたアプリケーションに割り当てることができる独立したロギング設定のセットです。通常の logging サブシステム同様にロギングプロファイルはハンドラー、カテゴリー、およびルートロガーを定義できますが、他のプロファイルや主要な logging サブシステムを参照できません。設定が容易である点でロギングプロファイルは logging サブシステムと似ています。

ロギングプロファイルを使用すると、管理者は他のロギング設定に影響を与えずに 1 つ以上のアプリケーションに固有なロギング設定を作成することができます。各プロファイルはサーバー設定で定義されるため、影響を受けるアプリケーションを再デプロイせずに、ロギング設定を変更できます。ただし、ロギングプロファイルは管理コンソールを使用して設定できません。

各ロギングプロファイルには以下の項目を設定できます。

  • 一意な名前 (必須)
  • 任意の数のログハンドラー
  • 任意の数のログカテゴリー
  • 最大 1 つのルートロガー

アプリケーションでは Logging-Profile 属性を使用して、MANIFEST.MF ファイルで使用するロギングプロファイルを指定できます。

12.8.2.1. ロギングプロファイルの設定

ロギングプロファイルは、ログハンドラー、カテゴリー、およびルートロガーで設定できます。ロギングプロファイルはメインの logging サブシステムとほぼ同じ構文を使用します。メインの logging サブシステムとロギングプロファイルの設定には 2 つの違いがあります。

  • ロート設定パスは /subsystem=logging/logging-profile=NAME です。
  • ロギングプロファイルに他のロギングプロファイルを追加できません。
ロギングプロファイルの作成および設定

以下の手順は、管理 CLI を使用してロギングプロファイルを作成し、ファイルハンドラーとロガーカテゴリーを設定します。

  1. ロギングプロファイルを作成します。

    /subsystem=logging/logging-profile=PROFILE_NAME:add
  2. ファイルハンドラーを作成します。

    /subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:add(file={path=>"LOG_NAME.log", "relative-to"=>"jboss.server.log.dir"})
    /subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:write-attribute(name="level", value="DEBUG")
  3. ロガーカテゴリーを作成します。

    /subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add(level=TRACE)
  4. ファイルハンドラーをカテゴリーに割り当てます。

    /subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add-handler(name="FILE_HANDLER_NAME")

この後、アプリケーションによって使用されるロギングプロファイルを MANIFEST.MF ファイルに設定できます。詳細は、JBoss EAP 開発ガイドアプリケーションでのロギングプロファイルの指定を参照してください。

12.8.2.2. ロギングプロファイル設定の例

この例は、ロギングプロファイルとそれを使用するアプリケーションの設定を表しています。管理 CLI コマンド、結果となる XML、およびアプリケーションの MANIFEST.MF が示されています。

ロギングプロファイルの例には次のような特徴があります。

  • 名前は accounts-app-profile です。
  • ログカテゴリーは com.company.accounts.ejbs です。
  • ログレベルは TRACE です。
  • ログハンドラーは、ejb-trace.log ファイルを使用するファイルハンドラーです。

管理 CLI セッション

/subsystem=logging/logging-profile=accounts-app-profile:add

/subsystem=logging/logging-profile=accounts-app-profile/file-handler=ejb-trace-file:add(file={path=>"ejb-trace.log", "relative-to"=>"jboss.server.log.dir"})

/subsystem=logging/logging-profile=accounts-app-profile/file-handler=ejb-trace-file:write-attribute(name="level", value="DEBUG")

/subsystem=logging/logging-profile=accounts-app-profile/logger=com.company.accounts.ejbs:add(level=TRACE)

/subsystem=logging/logging-profile=accounts-app-profile/logger=com.company.accounts.ejbs:add-handler(name="ejb-trace-file")

XML 設定

<logging-profiles>
   <logging-profile name="accounts-app-profile">
      <file-handler name="ejb-trace-file">
         <level name="DEBUG"/>
         <file relative-to="jboss.server.log.dir" path="ejb-trace.log"/>
      </file-handler>
      <logger category="com.company.accounts.ejbs">
         <level name="TRACE"/>
         <handlers>
            <handler name="ejb-trace-file"/>
         </handlers>
      </logger>
   </logging-profile>
</logging-profiles>

アプリケーションの MANIFEST.MF ファイル

Manifest-Version: 1.0
Logging-Profile: accounts-app-profile

12.8.3. デプロイメントロギング設定の表示

以下の管理 CLI コマンドを使用して特定のデプロイメントのロギング設定に関する情報を取得します。

/deployment=DEPLOYMENT_NAME/subsystem=logging/configuration=CONFIG:read-resource

デプロイメントのロギング configuration の値には、以下の 3 つの値の 1 つを指定します。

  • デプロイメントが logging サブシステムを使用する場合は default を指定します。これにより、logging サブシステムの設定が出力されます。
  • デプロイメントが logging サブシステムに定義されている ロギングプロファイルを使用する場合は profile-PROFILE_NAME を指定します。これにより、ロギングプロファイルの設定が出力されます。
  • 使用される設定ファイルへのパス (例: myear.ear/META-INF/logging.properties) を指定します。

たとえば、以下の管理 CLI コマンドは、特定のデプロイメントによって使用される MYPROFILE ロギングプロファイルの設定を表示します。

/deployment=mydeployment.war/subsystem=logging/configuration=profile-MYPROFILE:read-resource(recursive=true,include-runtime=true)

以下の情報が出力されます。

{
    "outcome" => "success",
    "result" => {
        "error-manager" => undefined,
        "filter" => undefined,
        "formatter" => {
            "MYFORMATTER" => {
                "class-name" => "org.jboss.logmanager.formatters.PatternFormatter",
                "module" => undefined,
                "properties" => {"pattern" => "%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"}
            }
        },
        "handler" => {
            "MYPERIODIC" => {
                "class-name" => "org.jboss.logmanager.handlers.PeriodicRotatingFileHandler",
                "encoding" => undefined,
                "error-manager" => undefined,
                "filter" => undefined,
                "formatter" => "MYFORMATTER",
                "handlers" => [],
                "level" => "ALL",
                "module" => undefined,
                "properties" => {
                    "append" => "true",
                    "autoFlush" => "true",
                    "enabled" => "true",
                    "suffix" => ".yyyy-MM-dd",
                    "fileName" => "EAP_HOME/standalone/log/deployment.log"
                }
            }
        },
        "logger" => {"MYCATEGORY" => {
            "filter" => undefined,
            "handlers" => [],
            "level" => "DEBUG",
            "use-parent-handlers" => true
        }},
        "pojo" => undefined
    }
}

また、再帰的な read-resource 操作を使用して、ロギング設定やデプロイメントに関する他の情報を取得することができます。

/deployment=DEPLOYMENT_NAME/subsystem=logging:read-resource(include-runtime=true, recursive=true)