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)
/subsystem=logging:write-attribute(name=use-deployment-logging-config,value=false)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 を使用してロギングプロファイルを作成し、ファイルハンドラーとロガーカテゴリーを設定します。管理コンソールでは Configuration
ロギングプロファイルを作成します。
/subsystem=logging/logging-profile=PROFILE_NAME:add
/subsystem=logging/logging-profile=PROFILE_NAME:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルハンドラーを作成します。
/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:add(file={path=>"LOG_NAME.log", "relative-to"=>"jboss.server.log.dir"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:write-attribute(name="level", value="DEBUG")
/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:write-attribute(name="level", value="DEBUG")Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルハンドラー属性の一覧は、File ログハンドラーの属性 を参照してください。
ロガーカテゴリーを作成します。
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add(level=TRACE)
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add(level=TRACE)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ログカテゴリー属性のリストは、ログカテゴリーの属性 を参照してください。
ファイルハンドラーをカテゴリーに割り当てます。
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add-handler(name="FILE_HANDLER_NAME")
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add-handler(name="FILE_HANDLER_NAME")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この後、アプリケーションによって使用されるロギングプロファイルを MANIFEST.MF ファイルに設定できます。詳細は、JBoss EAP開発ガイド のアプリケーションでのロギングプロファイルの指定を参照してください。
11.8.2.2. ロギングプロファイル設定の例 リンクのコピーリンクがクリップボードにコピーされました!
この例は、ロギングプロファイルとそれを使用するアプリケーションの設定を表しています。管理 CLI コマンド、結果となる XML、およびアプリケーションの MANIFEST.MF が示されています。
ロギングプロファイルの例には次のような特徴があります。
-
名前は
accounts-app-profileです。 -
ログカテゴリーは
com.company.accounts.ejbsです。 -
ログレベルは
TRACEです。 -
ログハンドラーは、
ejb-trace.logファイルを使用するファイルハンドラーです。
管理 CLI セッション
XML 設定
アプリケーションの MANIFEST.MF ファイル
Manifest-Version: 1.0 Logging-Profile: accounts-app-profile
Manifest-Version: 1.0
Logging-Profile: accounts-app-profile
11.8.3. デプロイメントロギング設定の表示 リンクのコピーリンクがクリップボードにコピーされました!
以下の管理 CLI コマンドを使用すると、特定のデプロイメントのロギング設定に関する情報を取得できます。
/deployment=DEPLOYMENT_NAME/subsystem=logging/configuration=CONFIG:read-resource
/deployment=DEPLOYMENT_NAME/subsystem=logging/configuration=CONFIG:read-resource
デプロイメントのロギング設定値である CONFIG には、以下の 3 つの値の 1 つを指定します。
-
デプロイメントが
logginglogging サブシステム を使用する場合は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)
/deployment=mydeployment.war/subsystem=logging/configuration=profile-MYPROFILE:read-resource(recursive=true,include-runtime=true)
以下の情報が出力されます。
また、再帰的な read-resource 操作を使用して、ロギング設定やデプロイメントに関する他の情報を取得することができます。
/deployment=DEPLOYMENT_NAME/subsystem=logging:read-resource(include-runtime=true, recursive=true)
/deployment=DEPLOYMENT_NAME/subsystem=logging:read-resource(include-runtime=true, recursive=true)