4. 業務アプリケーションのログ

この節では業務アプリケーションからログを出力する方法について説明します。

業務アプリケーションからログを出力する方法として、以下を提供しています。

・JavaEE アプリケーション

 JDK Logger、Log4JなどJavaライブラリを用いて出力する方法と、標準出力に出力する方法があります。Log4Jを利用する場合は次節を参照してください。

(※1)  Log4Jなどのライブラリは業務アプリケーション側で用意する必要があります。

(※2) Log4j2-asはWebOTX内部コンポーネント専用のライブラリであり、業務アプリケーションのログ出力用ライブラリとしては機能を提供していません。

4.1. 業務アプリケーションで用意したLog4Jを利用する場合

業務アプリケーションで用意したLog4Jを利用する場合、アプリケーションが利用するLog4J定義ファイルは、WEB-INF/classes以下に配置する必要があります。


4.2. 業務アプリケーションがLog4Jを利用する場合の注意点

WebOTX上で動作するJavaアプリケーションにおいて、Log4Jを利用する場合の注意点について説明します。

4.2.1. プロセスグループに配備した業務アプリケーションのログ出力を行う場合

Standardで、アプリケーションをプロセスグループに配備して動作させる場合のログ出力の手順について説明します。
アプリケーションをプロセスグループに配備した場合、アプリケーションはプロセスグループ上で動作します。プロセスグループは、多重度を設定することができるため、ファイルにログ出力を行う場合、複数のプロセスが同じファイルに書き込みを行い、メッセージの欠損やローテート失敗によるメッセージの全損等の問題が発生する可能性があります。そのため、以下のいずれかの手順で問題を回避する必要があります。

4.2.1.1. アプリケーションのログをプロセスグループのログに出力する場合

アプリケーションのログをプロセスグループのログに出力するには、標準出力を利用します。プロセスグループ上で標準出力を行うと、プロセスグループのログファイルに出力されます。ログファイルは以下に出力されます。
${INSTANCE_ROOT}/logs/tpsystem/${APGNAME}/${PGNAME}/${PGNAME}.${PID}.log

4.2.1.2. アプリケーションのログを個別のファイルに出力する場合

アプリケーションのログを個別のファイルに出力する場合、出力するログファイル名に、アプリケーションが動作するプロセスのプロセスIDを付与することで、多重度を設定した場合でもプロセス単位にログを出力することができます。

(注意) ログ定義ファイルについて
プロセスグループ上でAPを動作させる場合、アプリケーションが利用するログ定義ファイルを、同一プロセスグループ上に配備されたアプリケーションごとに分けて利用することはできません。プロセスグループで同一のLog4J定義ファイルを使用してください。

4.2.2. Log4Jで利用できるJavaシステムプロパティ

Standard を利用している場合は、次のJavaシステムプロパティを利用することができます。

これらのJavaシステムプロパティをLog4Jのプロパティに指定することにより、プロセスIDの取得等が可能になります。

Log4Jのプロパティに指定するJavaシステムプロパティ一覧
出力情報 Javaシステムプロパティ名
ホスト名 com.nec.webotx.hostName (*1)
ドメイン名 domain.name
System名 jp.co.nec.WebOTX.SystemName
アプリケーショングループ名 jp.co.nec.WebOTX.APGroupName
プロセスグループ名 jp.co.nec.WebOTX.ProcessGroupName
プロセスID jp.co.nec.WebOTX.ProcessID
トレースID jp.co.nec.WebOTX.TraceID

(注意) 上記のJavaシステムプロパティに指定する値は変更できません。変更した場合の動作は保証できません。

(*1) 本プロパティはプロセスグループ作成時にCORBAシステムを選択された場合、そのプロセスグループ上では使用できません。

4.3. 標準出力を利用する場合

標準出力を利用する場合、エディションまたはドメインの構成により以下のファイルへ出力されます。