ログ定義ファイルでは、LogComposerクラスを拡張した以下のクラスを利用することができます。
com.fujitsu.uji.log.ext.ExtMessageComposer
フォーマット付きメッセージログを出力するクラスです。出力例を以下に示します。
2001/01/05 16:47:49 sys mainsystem compo1 INFO 12346 情報:更新しました。
com.fujitsu.uji.log.ext.ExtTimeComposer
区間時間の情報を出力するのに適したクラスです。出力例を以下に示します。
FSP INTS-APC PFMAP 92002 server2 system1 2003/12/25 20:45:15:000 2003/12/25 20:45:15:013 13
com.fujitsu.uji.log.ext.ExtDataComposer
データBeanの情報を出力するのに適したクラスです、出力例を以下に示します。
FSP INTS-APC JNLAtoW 91005 server1 system1 200312250845530 123.123.45.67 43 user=(user01)password=(****)ok=(ログイン)
ログメッセージファイルを用いたログ出力
フォーマット付きメッセージログ用のクラスExtMessageComposerによりログを出力する場合は、ログメッセージファイルに定義したメッセージを出力できます。ログメッセージファイルはフォーマット付きメッセージログ専用のリソースファイルです。ファイル名のデフォルトはlogresource.xmlで、初期化パラメタuji.logresourceで変更することができます。初期化パラメタについては、“11.2 初期化パラメタ”を参照してください。
ログメッセージファイルの記述
ログメッセージファイルは、アプリケーションで使用する文字列データをログ出力用にカスタマイズして、メッセージの一部に動的な情報を埋め込んで定義するXMLファイルです。
以下にログメッセージファイルの記述例を示します。
《logresource.xml》
<?xml version="1.0" encoding="UTF-8"?> <ujiResource> <config> <version>5.1</version> </config> <map id="12345"> <elem key="label.code">sys</elem> <elem key="label.name">mainsystem</elem> <elem key="label.subname">compo1</elem> <elem key="errorType">ERROR</elem> <elem key="level">1</elem> <elem key="message">エラー:{0}-{1}</elem> </map> <map id="12346"> <elem key="label.code">sys</elem> <elem key="label.name">mainsystem</elem> <elem key="label.subname">compo1</elem> <elem key="errorType">INFO</elem> <elem key="level">5</elem> <elem key="message">情報:{0}</elem> </map> </ujiResource>
ログメッセージファイルには、以下に示すApcoordinatorのリソースファイルのタグを指定します。
ログメッセージファイルのルートの要素です。
アトリビュート
ujiResourceタグのアトリビュートは指定できません。
コンテント
コンテントには以下をこの順番で記述します。
configタグ(必ず1個記述します。)
mapタグ(0個以上記述します。)
ログメッセージファイル全体に共通の設定を記述します。
アトリビュート
configタグのアトリビュートは指定できません。
コンテント
コンテントには以下を記述します。
versionタグ(必ず1個記述します。)
ログメッセージファイルの文法バージョンを記述します。
アトリビュート
versionタグのアトリビュートは指定できません。
コンテント
コンテントには文法バージョンを記述します。指定可能なバージョンは 5.1 です。
ログメッセージの定義を記述します。
アトリビュート
mapタグでは以下のアトリビュートを指定します。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
id | 不可 | メッセージIDを指定します。 | 省略できません。 |
コンテント
コンテントには以下を記述します。
elemタグ(0個以上記述します。)
ログメッセージの情報を記述します。
アトリビュート
elemタグでは以下のアトリビュートを指定します。
アトリビュート名 | 省略 | 意味 | 省略時の動作 |
---|---|---|---|
key | 不可 | 各情報を表わすキーを指定します。各メッセージに対して、以下のキーをもつelemタグを指定してください。
| 省略できません。 |
コンテント
コンテントにはキーの値により以下の内容を記述します。
キー | 省略 | コンテントへ指定する値 | 省略時の動作 |
---|---|---|---|
label.code | 不可 | 英数字最大3桁の管理コード | 省略できません。 |
label.name | 不可 | 英数字最大12桁の識別名(業務名など) | 省略できません。 |
label.subname | 不可 | 英数字最大9桁の識別名(モジュール名など) | 省略できません。 |
errorType | 不可 | 以下のログの種別
| 省略できません。 |
level | 不可 | 出力するログのレベル | 省略できません。 |
message | 不可 | メッセージ本体 | 省略できません。 |
ログの出力のマスク
ExtDataComposerのマスク機能を利用して、通信ログで出力される項目の中で、ユーザーのパスワードなど、ログに残すと問題がある項目を隠すことができます。マスクされた項目はアスタリスク4文字(****)で表示されます。
journalタグで、ExtDataComposerの出力対象にしない項目をマスクします。maskDataタグで、マスク対象の項目名を列挙します。
項目名“password”をマスクする場合の定義例を以下に示します。
<logComposer name="journal"> <output name="jnlStdOut" type="stdout"/> <journal> <maskData>password</maskData> </journal> </logComposer>
出力例を以下に示します。
FSP INTS-APC JNLAtoW 91005 server1 system1 200312250845530 123.123.45.67 43 user=(user01)password=(****)ok=(ログイン) FSP INTS-APC JNLAtoW 91005 server1 system1 200312250846006 123.123.45.67 17 logoff=(ログオフ)