第11章 JBoss EAP を用いたロギング
JBoss EAP は、EAP での内部使用とデプロイされたアプリケーションによる使用の両方で設定可能なロギング機能を提供します。logging サブシステムは JBoss LogManager を基盤とし、JBoss Logging だけでなくサードパーティーアプリケーションのロギングフレームワークを複数サポートします。
11.1. サーバーロギング リンクのコピーリンクがクリップボードにコピーされました!
11.1.1. サーバーロギング リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、すべての JBoss EAP ログエントリーは server.log ファイルに書き込みされます。このファイルの場所は操作するモードによって異なります。
-
スタンドアロンサーバーの場合:
EAP_HOME/standalone/log/server.log -
管理対象ドメインの場合:
EAP_HOME/domain/servers/SERVER_NAME/log/server.log
このファイルはサーバーログとも呼ばれます。詳細は「ルートロガー」を参照してください。
11.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ファイルに手動で行った変更は起動時に上書きされます。
11.1.2.1. 起動エラーの表示 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP をトラブルシューティングする場合、最初に行うべきことの 1 つは、起動時に発生したエラーをチェックすることです。提供された情報を使用して原因を診断し、解決します。起動時のエラーをトラブルシューティングする際にサポートが必要な場合はサポートケースを作成してください。
起動時のエラーを表示する方法は 2 つあり、どちらも利点があります。1 つは server.log ファイルを確認する方法で、もう 1 つは read-boot-errors管理 CLI コマンドを使用してブートエラーを確認する方法になります。
サーバーログファイルの確認
server.log ファイルを開いて起動中に発生したエラーを確認します。
この方法では、各エラーメッセージおよび関連するメッセージを確認でき、エラーが発生した理由の詳細を知ることができます。また、エラーメッセージをプレーンテキスト形式で表示することもできます。
-
ファイルビューアーで
server.logを開きます。 - ファイルの最後に移動します。
-
最後の起動シーケンスの開始を示す
WFLYSRV0049メッセージ ID を後方検索します。 -
ログのその位置から
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"}
}
...
]
}
11.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
11.1.4. デフォルトのログファイルの場所 リンクのコピーリンクがクリップボードにコピーされました!
以下のログファイルは、デフォルトのロギング設定に対して作成されます。デフォルトの設定では、periodic ログハンドラーを使用してサーバーログファイルが書き込まれます。
| ログファイル | 説明 |
|---|---|
|
EAP_HOME/standalone/log/server.log |
サーバー起動メッセージを含むサーバーログメッセージが含まれます。 |
|
EAP_HOME/standalone/log/gc.log.DIGIT.current |
ガベッジコレクションの詳細が含まれます。 |
| ログファイル | 説明 |
|---|---|
|
EAP_HOME/domain/log/host-controller.log |
ホストコントローラーの起動に関連するログメッセージが含まれます。 |
|
EAP_HOME/domain/log/process-controller.log |
プロセスコントローラーの起動に関連するログメッセージが含まれます。 |
|
EAP_HOME/domain/servers/SERVER_NAME/log/server.log |
サーバー起動メッセージを含む、名前付きサーバーのログメッセージが含まれます。 |
11.1.5. サーバーのデフォルトロケールの設定 リンクのコピーリンクがクリップボードにコピーされました!
JVM プロパティーを適切な起動設定ファイルに設定すると、デフォルトのロケールを設定できます。起動設定ファイルは、スタンドアロンサーバーの場合は EAP_HOME/bin/standalone.conf、管理対象ドメインの場合は EAP_HOME/bin/domain.conf になります。
Windows Server の場合、JBoss EAP 起動設定ファイルは standalone.conf.bat と domain.conf.bat になります。
国際化または現地化されたログメッセージはこのデフォルトロケールを使用します。JBoss EAP『開発ガイド』の国際化されたログメッセージの作成に関する情報を参照してください。
言語の設定
言語の指定を行うには、JAVA_OPTS 変数を使用して user.language プロパティーを設定します。
JAVA_OPTS="$JAVA_OPTS -Duser.language=fr"
国際化および現地化されたログメッセージがフランス語で出力されるようになります。
言語および国の設定
言語の他に、user.country プロパティーを設定して国を指定することもできます。たとえば、以下の行を起動設定ファイルに追加すると、ポルトガル語のロケールがブラジルに設定されます。
JAVA_OPTS="$JAVA_OPTS -Duser.language=pt -Duser.country=BR"
国際化および現地化されたログメッセージがブラジルポルトガル語で出力されるようになります。
org.jboss.logging.locale プロパティーを使用したサーバーロケールの設定
org.jboss.logging.locale プロパティーを使用すると、Boss EAP からのメッセージや JBoss EAP が所有する依存関係からのメッセージなど、JBoss Logging を使用してログに記録されたメッセージのロケールを上書きできます。JSF などの他の依存関係ではロケールを上書きできません。
JBoss EAP サーバーをシステムデフォルト以外のロケールで起動するには、操作モードに応じて EAP_HOME/bin/standalone.conf または EAP_HOME/bin/domain.conf ファイルを編集し、以下のコマンドを追加して必要なロケールの JVM パラメーターを設定します。プロパティーの値は BCP 47 形式で指定する必要があります。たとえば、ブラジルポルトガル語を設定する場合は「pt-BR 」を使用します。
JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.logging.locale=pt-BR"
11.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"
]
}
11.3. Logging サブシステム リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP の logging サブシステムは ログカテゴリー および ログハンドラー のシステムを使用して設定されます。ログカテゴリーはキャプチャーするメッセージを定義します。ログハンドラーは、ディスクへの書き込みやコンソールへの送信など、これらのメッセージの対応方法を定義します。
ロギングプロファイル は、一意な名前が付けられたロギング設定の作成や、他のロギング設定に関係しないアプリケーションへの割り当てを可能にします。ロギングプロファイルの設定は、メインの logging サブシステムとほぼ同じです。
11.3.1. ルートロガー リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP のルートロガーは、ログカテゴリーによってキャプチャーされないサーバーへ送信されたすべてのログメッセージ (指定のログレベル以上) をキャプチャーします。
デフォルトでは、ルートロガーはコンソールおよび周期ログハンドラーを使用するように設定されます。周期ログハンドラーは、server.log ファイルへ書き込むよう設定されます。このファイルはサーバーログとも呼ばれます。
詳細は「ルートロガーの設定」を参照してください。
11.3.2. ログカテゴリー リンクのコピーリンクがクリップボードにコピーされました!
ログカテゴリーは、キャプチャーするログメッセージのセットと、メッセージを処理する 1 つ以上のログハンドラーを定義します。
キャプチャーするログメッセージは、指定された元の Java パッケージとログレベルによって定義されます。そのパッケージのクラスおよびそのログレベル以上のメッセージがログカテゴリーによってキャプチャーされ、指定のログハンドラーに送信されます。
通常、ログカテゴリーは Java パッケージとクラス名ですが、Logger.getLogger(LOGGER_NAME) メソッドによって指定された名前をすべて使用できます。
ログカテゴリーは、独自のハンドラーの代わりにルートロガーのログハンドラーを任意で使用することができます。
詳細は「ログカテゴリーの設定」を参照してください。
11.3.3. ログハンドラー リンクのコピーリンクがクリップボードにコピーされました!
ログハンドラーはキャプチャーしたメッセージの記録方法を定義します。使用できるログハンドラーの種類は console、file、periodic、size、periodic size、syslog、 custom、および 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 ログハンドラーは、待ち時間が長かったり、ネットワークファイルシステムへのログファイルの書き込みなどにパフォーマンス上の問題があるログハンドラーに対して有用です。
各ログハンドラーの設定に関する詳細は、「ログハンドラーの設定」の項を参照してください。
11.3.4. ログレベル リンクのコピーリンクがクリップボードにコピーされました!
ログレベルとは、ログメッセージの性質と重大度を示す列挙値です。特定のログメッセージのレベルは、そのメッセージを送信するために選択したロギングフレームワークの適切なメソッドを使用して開発者が指定できます。
JBoss EAP は、サポートされるアプリケーションロギングフレームワークによって使用されるすべてのログレベルをサポートします。最も一般的に使用されるログレベルは、ログレベルの低い順に TRACE、DEBUG、INFO、WARN、ERROR および FATAL となります。
ログレベルはログカテゴリとログハンドラーによって使用され、それらが担当するメッセージを限定します。各ログレベルには、他のログレベルに対して相対的な順番を示す数値が割り当てられています。ログカテゴリーとハンドラーにはログレベルが割り当てられ、そのレベル以上のログメッセージのみを処理します。たとえば、WARN レベルのログハンドラーは、WARN、ERROR、および FATAL のレベルのメッセージのみを記録します。
サポート対象のログレベル
| ログのレベル | 値 | 説明 |
|---|---|---|
|
ALL |
Integer.MIN_VALUE |
すべてのログメッセージを提供します。 |
|
FINEST |
300 |
- |
|
FINER |
400 |
- |
|
TRACE |
400 |
|
|
DEBUG |
500 |
|
|
FINE |
500 |
- |
|
CONFIG |
700 |
- |
|
INFO |
800 |
|
|
WARN |
900 |
|
|
WARNING |
900 |
- |
|
ERROR |
1000 |
|
|
SEVERE |
1000 |
- |
|
FATAL |
1100 |
|
|
OFF |
Integer.MAX_VALUE |
ログメッセージを表示しません。 |
ALL は、最低ログレベルであり、すべてのログレベルのメッセージを含みます。ロギングの量は最も多くなります。
FATAL は、最大ログレベルであり、そのレベルのメッセージのみを含みます。ロギングの量は最も少なくなります。
11.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 |
現在の日付/時間 ( |
|
%r |
相対時間 (ログ初期化以降のミリ秒単位の時間)。 |
|
%z |
日付 ( |
|
%k |
ログリソースキー (ログメッセージのローカリゼーションに使用)。 |
|
%m |
ログメッセージ (例外トレースを含む)。 |
|
%s |
単純なログメッセージ (例外トレースなし)。 |
|
%e |
例外スタックトレース (拡張モジュール情報なし)。 |
|
%E |
例外スタックトレース (拡張モジュール情報あり)。 |
|
%t |
現在のスレッドの名前。 |
|
%n |
改行文字。 |
|
%C |
ログメソッドを呼び出すコードのクラス (低速)。 |
|
%F |
ログメソッドを呼び出すクラスのファイル名 (低速)。 |
|
%l |
ログメソッドを呼び出すコードのソースロケーション (低速)。 |
|
%L |
ログメソッドを呼び出すコードの行番号 (低速)。 |
|
%M |
ログメソッドを呼び出すコードのメソッド (低速)。 |
|
%x |
ネスト化診断コンテキスト。 |
|
%X |
メッセージ診断コンテキスト。 |
|
%% |
リテラルパーセント ( |
11.3.6. フィルター式 リンクのコピーリンクがクリップボードにコピーされました!
フィルター式は filter-spec 属性を使用して設定され、さまざまな基準に基いてログメッセージを記録するために使用されます。フィルターチェックは、常に未フォーマットの raw メッセージに対して行われます。ロガーまたはハンドラーのフィルターを含めることができますが、ハンドラーに配置されたフィルターよりもロガーフィルターが優先されます。
ルートロガーに対して指定された filter-spec は他のロガーによって継承されません。ハンドラーごとに filter-spec を指定する必要があります。
| フィルター式 | 説明 |
|---|---|
|
accept |
すべてのログメッセージを許可します。 |
|
deny |
すべてのログメッセージを拒否します。 |
|
not[filter expression] |
単一のフィルター式の逆の値を返します。以下に例を示します。
|
|
all[filter expression] |
フィルター式のカンマ区切りリストから連結された値を返します。以下に例を示します。
|
|
any[filter expression] |
フィルター式のカンマ区切りリストから 1 つの値を返します。以下に例を示します。
|
|
levelChange[level] |
指定のレベルでログレコードを更新します。以下の例を示します。
|
|
levels[levels] |
レベルのカンマ区切りリストにあるレベルの 1 つでログメッセージをフィルターします。以下に例を示します。
|
|
levelRange[minLevel,maxLevel] |
指定されたレベル範囲内でログメッセージをフィルターします。
|
|
match["pattern"] |
提供される正規表現を使用してログメッセージをフィルターします。以下に例を示します。
|
|
substitute["pattern","replacement value"] |
最初にパターン (最初の引数) と一致した値を代替テキスト (2 番目の引数) に置き換えるフィルター。以下に例を示します。
|
|
substituteAll["pattern","replacement value"] |
パターン (最初の引数) と一致したすべての値を代替テキスト (2 番目の引数) に置き換えるフィルター。以下に例を示します。
|
管理 CLI を使用してフィルター式を設定する場合、値が文字列として正しく処理されるよう、フィルターテキストのコンマと引用符を必ずエスケープしてください。コンマと引用符の前にバックスラッシュ (\) を付け、式全体を引用符で囲む必要があります。以下は substituteAll("WFLY","YLFW") を適切にエスケープした例になります。
/subsystem=logging/console-handler=CONSOLE:write-attribute(name=filter-spec, value="substituteAll(\"WFLY\"\,\"YLFW\")")
11.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『開発ガイド』の「暗黙的なモジュール依存関係」の項を参照してください。
11.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
11.5. ログハンドラーの設定 リンクのコピーリンクがクリップボードにコピーされました!
ログハンドラーはキャプチャーされたログメッセージが記録される方法を定義します。以下の項を参照して必要なログハンドラーのタイプを設定してください。
11.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.out、System.err、consoleのいずれかになります。デフォルト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
11.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
11.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
11.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
11.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
11.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
11.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 によって指定されるロガーに Size ログハンドラーを割り当てます。
/subsystem=logging/logger=CATEGORY:add-handler(name=CUSTOM_HANDLER_NAME)
カスタムログハンドラーの削除
ログハンドラーは remove 操作で削除できます。ログハンドラーが現在ロガーまたは Async ログハンドラーに割り当てられている場合は削除できません。
/subsystem=logging/custom-handler=CUSTOM_HANDLER_NAME:remove
11.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
11.6. ルートロガーの設定 リンクのコピーリンクがクリップボードにコピーされました!
ルートロガーは、ログカテゴリーによってキャプチャーされないサーバーへ送信されたすべてのログメッセージ (指定のログレベル以上) をキャプチャーします。
ここでは、管理 CLI を使用したルートロガーの設定方法を説明します。管理コンソールを使用してルートロガーを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択し、 Root Logger タブを選択します。
ルートロガーの設定
ロギングプロファイルにこのログハンドラーを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。
さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。
ログハンドラーをルートロガーへ割り当てます。
ログハンドラーを追加します。
/subsystem=logging/root-logger=ROOT:add-handler(name=LOG_HANDLER_NAME)ログハンドラーの削除
/subsystem=logging/root-logger=ROOT:remove-handler(name=LOG_HANDLER_NAME)ログレベルを設定します。
/subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=LEVEL)
使用できるルートロガー属性とその説明の完全リストは、「ルートロガーの属性」を参照してください。
11.7. ログフォーマッターの設定 リンクのコピーリンクがクリップボードにコピーされました!
ログフォーマッターはそのハンドラーからログメッセージの表示を定義します。名前付きパターンフォーマッターまたはカスタムログフォーマッターを設定できます。
11.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 のカンマ区切りリストです。
-
有効なレベル:
finest、finer、fine、config、trace、debug、info、warning、warn、error、fatal、severe -
有効な色:
black、green、red、yellow、blue、magenta、cyan、white、brightblack、brightred、brightgreen、brightblue、brightyellow、brightmagenta、brightcyan、brightwhite
/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)
11.7.2. カスタムログフォーマッターの設定 リンクのコピーリンクがクリップボードにコピーされました!
ログハンドラーすべてで使用できるカスタムログフォーマッターを作成して、ログメッセージをフォーマットすることができます。
ここでは、管理 CLI を使用したカスタムログフォーマッターの設定方法を説明します。管理コンソールを使用してログフォーマッターを設定することもできます。管理コンソールを使用する場合は Configuration タブで Logging サブシステムを選択します。Formatter タブを選択して、左側のメニューから Custom を選択します。
カスタムログフォーマッターの設定
ロギングプロファイルにこのログフォーマッターを設定する場合、 コマンドの最初は /subsystem=logging/ ではなく /subsystem=logging/logging-profile=LOGGING_PROFILE_NAME/ になります。
さらに、管理対象ドメインで実行している場合はコマンドの前に /profile=PROFILE_NAME を付けます。
カスタムログフォーマッターを追加します。
カスタムログフォーマッターを追加する場合、フォーマッターの Java クラスとフォーマッターが含まれる JBoss EAP モジュールを指定する必要があります。クラスは
java.util.logging.Formatterを拡張する必要があります。注記すでに、カスタムフォーマッターが含まれるモジュールが作成されている必要があります。作成されていないと、このコマンドの実行に失敗します。
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:add(class=CLASS_NAME, module=MODULE_NAME)ログフォーマッターに必要なプロパティーを設定します。
setter メソッドを使用してプロパティーにアクセスできなければなりません。
/subsystem=logging/custom-formatter=CUSTOM_FORMATTER_NAME:write-attribute(name=properties.PROPERTY_NAME,value=PROPERTY_VALUE)カスタムフォーマッターをログハンドラーに割り当てます。
以下の管理 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>
11.8. アプリケーションのロギング リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションのロギングは、JBoss EAP の logging サブシステムを使用するか、デプロイメントごとに設定できます。
ログメッセージの取得に JBoss EAP ログカテゴリーおよびハンドラーを使用する方法は「Logging サブシステム」を参照してください。
サポートされるアプリケーションロギングフレームワークやデプロイメントごとのロギング設定など、アプリケーションロギングの詳細は JBoss EAP『開発ガイド』の「ロギング」の章を参照してください。
11.8.1. デプロイメントごとのロギング リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントごとのロギングを使用すると、開発者はアプリケーションのロギング設定を事前に設定できます。アプリケーションがデプロイされると、定義された設定に従ってロギングが開始されます。この設定によって作成されたログファイルにはアプリケーションの動作に関する情報のみが含まれます。
デプロイメントごとのロギング設定が行われない場合、すべてのアプリケーションとサーバーには logging サブシステムの設定が使用されます。
この方法では、システム全体のロギングを使用する利点と欠点があります。利点は、JBoss EAP インスタンスの管理者がサーバーロギング以外のロギングを設定する必要がないことです。欠点は、デプロイメントごとのロギング設定はサーバーの起動時に読み取り専用であるため、実行時に変更できないことです。
アプリケーションでデプロイメントごとのロギングを使用する手順については、JBoss EAP『開発ガイド』の「デプロイメントごとのロギングをアプリケーションに追加」を参照してください。
11.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『開発ガイド』の「サブシステムをデプロイメントから除外」を参照してください。
11.8.2. ロギングプロファイル リンクのコピーリンクがクリップボードにコピーされました!
ロギングプロファイルは、デプロイされたアプリケーションに割り当てることができる独立したロギング設定のセットです。通常の logging サブシステム同様にロギングプロファイルはハンドラー、カテゴリー、およびルートロガーを定義できますが、他のプロファイルや主要な logging サブシステムを参照できません。設定が容易である点でロギングプロファイルは logging サブシステムと似ています。
ロギングプロファイルを使用すると、管理者は他のロギング設定に影響を与えずに 1 つ以上のアプリケーションに固有なロギング設定を作成することができます。各プロファイルはサーバー設定で定義されるため、影響を受けるアプリケーションを再デプロイせずに、ロギング設定を変更できます。ただし、ロギングプロファイルは管理コンソールを使用して設定できません。
各ロギングプロファイルには以下の項目を設定できます。
- 一意な名前。この値は必須です。
- 任意の数のログハンドラー。
- 任意の数のログカテゴリー。
- 最大 1 つのルートロガー。
アプリケーションでは Logging-Profile 属性を使用して、MANIFEST.MF ファイルで使用するロギングプロファイルを指定できます。
11.8.2.1. ロギングプロファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
ロギングプロファイルは、ログハンドラー、カテゴリー、およびルートロガーで設定できます。ロギングプロファイルの設定には、logging サブシステムの設定と同じ構文を使用しますが、以下の点が異なります。
-
ルート設定パスが
/subsystem=logging/logging-profile=NAMEになります。 - ロギングプロファイルに他のロギングプロファイルを追加できません。
loggingサブシステムには、ロギングプロファイルに使用できない以下の属性があります。-
add-logging-api-dependencies -
use-deployment-logging-config
-
ロギングプロファイルの作成および設定
以下の手順は、管理 CLI を使用してロギングプロファイルを作成し、ファイルハンドラーとロガーカテゴリーを設定します。
ロギングプロファイルを作成します。
/subsystem=logging/logging-profile=PROFILE_NAME:addファイルハンドラーを作成します。
/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")ファイルハンドラー属性の一覧は、「File ログハンドラーの属性 」を参照してください。
ロガーカテゴリーを作成します。
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add(level=TRACE)ログカテゴリー属性のリストは、「ログカテゴリーの属性 」を参照してください。
ファイルハンドラーをカテゴリーに割り当てます。
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add-handler(name="FILE_HANDLER_NAME")
この後、アプリケーションによって使用されるロギングプロファイルを MANIFEST.MF ファイルに設定できます。詳細は、JBoss EAP『開発ガイド』の「アプリケーションでのロギングプロファイルの指定」を参照してください。
11.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
11.8.3. デプロイメントロギング設定の表示 リンクのコピーリンクがクリップボードにコピーされました!
以下の管理 CLI コマンドを使用すると、特定のデプロイメントのロギング設定に関する情報を取得できます。
/deployment=DEPLOYMENT_NAME/subsystem=logging/configuration=CONFIG:read-resource
デプロイメントのロギング設定値である CONFIG には、以下の 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)
11.9. Logging サブシステムの調整 リンクのコピーリンクがクリップボードにコピーされました!
logging サブシステムのパフォーマンスを監視および最適化するための情報は、『Performance Tuning Guide』の「Logging Subsystem Tuning」の項を参照してください。