ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

5.5.2 目的別ログの利用

ログ定義ファイルでは、LogComposerクラスを拡張した以下のクラスを利用することができます。

ログメッセージファイルを用いたログ出力

フォーマット付きメッセージログ用のクラスExtMessageComposerによりログを出力する場合は、ログメッセージファイルに定義したメッセージを出力できます。ログメッセージファイルはフォーマット付きメッセージログ専用のリソースファイルです。ファイル名のデフォルトはlogresource.xmlで、初期化パラメタuji.logresourceで変更することができます。初期化パラメタについては、“13.3 初期化パラメタ”を参照してください。

ログメッセージファイルの記述

ログメッセージファイルは、アプリケーションで使用する文字列データをログ出力用にカスタマイズして、メッセージの一部に動的な情報を埋め込んで定義する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]

ログメッセージファイルのルートの要素です。

  • アトリビュート
    ujiResourceタグのアトリビュートは指定できません。

  • コンテント
    コンテントには以下をこの順番で記述します。

    • configタグ(必ず1個記述します。)

    • mapタグ(0個以上記述します。)

[config]

ログメッセージファイル全体に共通の設定を記述します。

  • アトリビュート
    configタグのアトリビュートは指定できません。

  • コンテント
    コンテントには以下を記述します。

    • versionタグ(必ず1個記述します。)

[version]

ログメッセージファイルの文法バージョンを記述します。

  • アトリビュート
    versionタグのアトリビュートは指定できません。

  • コンテント
    コンテントには文法バージョンを記述します。指定可能なバージョンは 5.1 です。

[map]

ログメッセージの定義を記述します。

  • アトリビュート
    mapタグでは以下のアトリビュートを指定します。

    アトリビュート名

    省略

    意味

    省略時の動作

    id

    不可

    メッセージIDを指定します。

    省略できません。

  • コンテント
    コンテントには以下を記述します。

    • elemタグ(0個以上記述します。)

[elem]

ログメッセージの情報を記述します。

  • アトリビュート
    elemタグでは以下のアトリビュートを指定します。

    アトリビュート名

    省略

    意味

    省略時の動作

    key

    不可

    各情報を表わすキーを指定します。各メッセージに対して、以下のキーをもつelemタグを指定してください。

    • label.code

    • label.name

    • label.subname

    • errorType

    • level

    • message

    省略できません。

  • コンテント
    コンテントにはキーの値により以下の内容を記述します。

    キー

    省略

    コンテントへ指定する値

    省略時の動作

    label.code

    不可

    英数字最大3桁の管理コード

    省略できません。

    label.name

    不可

    英数字最大12桁の識別名(業務名など)

    省略できません。

    label.subname

    不可

    英数字最大9桁の識別名(モジュール名など)

    省略できません。

    errorType

    不可

    以下のログの種別

    • HALT:停止

    • ERROR:エラー

    • WARNING:警告

    • INFO:情報

    省略できません。

    level

    不可

    出力するログのレベル

    省略できません。

    message

    不可

    メッセージ本体
    java.text.MessageFormatで使用するフォーマットで記述
    記述メッセージ本文内の{0}、{1}などを、パラメタとして渡される補足情報に置き換えて出力。{0}から{9}まで利用可能

    省略できません。

ログの出力のマスク

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=(ログオフ)