Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第2部 Apcoordinatorコアの機能> 第4章 APIを使ったプログラミング> 4.2 アプリケーションログ

4.2.5 定義ファイルを用いたログ出力(new)

ログ定義ファイルを利用することにより、Apcoordinatorが標準で利用するログ(標準ログ)とユーザアプリケーションで利用するログを分けることが可能です。 標準で利用するログは、アプリケーションに記述を行わなくてもApcoordinatorがログを出力します。
ログ定義ファイルの格納先は設定ファイルフォルダを参照してください。

Apcoordinatorで出力するログは以下のように分類されています。

分類管理名用途
標準ログsystemApcoordinatorの稼働状況を出力します。
ユーザログ上記以外の任意の名称アプリケーションで任意に使用することができます。
注意

■ログ出力の記述

ビジネスメソッドでは、以下の記述でログを出力します。 ログ出力クラス(LogComposer)は、DispatchContextクラスのgetLogComposerの引数に、ログ管理名を指定することで取得します。 LogComposerの各メソッドを利用してログを出力します。

import com.fujitsu.uji.log.*;
....
    public Object someMethod(DispatchContext context, DataBean bean) {
        ....
        LogComposer myLogger = context.getLogComposer("mylog");
        myLogger.println("someMethod start");

        ....
    }

■ログ定義ファイルの記述

管理名systemは、標準エラー出力へ、管理名mylogは、標準出力へログを出力する定義ファイルの例です。

《logConf.xml》


<?xml version="1.0" encoding="UTF-8" ?>
<logConfig
    xmlns="http://interstage.fujitsu.com/schemas/uji/logConf"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://interstage.fujitsu.com/schemas/uji/logConf
                        http://interstage.fujitsu.com/schemas/uji/logconf.xsd">
  <config>
    <version>7.0</version>
  </config>

  <logComposer name="system">
    <output name="systemOutput" type="stderr"/>
  </logComposer>

  <logComposer name="mylog">
    <output name="mylogOutput" type="stdout"/>
  </logComposer>
</logConfig>
logComposerタグ
ログ種別を指定します。nameには、管理名を指定します。
outputタグ
ログの出力先を指定します。詳細は後述します。
・ログの出力先を設定する
outputタグは、ログの出力先を指定します。複数の出力先にログを出力する場合は、outputタグを複数記述します。


  <logComposer name="system">
    <output name="sysStdOut" type="stderr"/>
    <output name="sysFileOut" type="file">
      <param name="path" value="/var/log"/>
      <param name="prefix" value="myapp"/>
      <param name="extension" value=".log"/>
    </output>
  </logComposer>
name属性には、outputタグを識別する名前を指定します。 type属性は、以下のいずれかを記述します。パラメタが必要な場合は、paramタグで指定します。
指定名意味パラメタ
stdout標準出力なし
stderr標準エラー出力なし
fileファイル出力フォルダ(path)、ファイル名(prefix)、拡張子(extension

出力フォルダは"/var/log"(Solaris OE、Linuxの場合)や、"C:\log"(Windowsの場合)のように設定します。
syslogSyslogホスト名(hostname)、機能(facility)、重大度(severity)、文字エンコーディング(encoding
eventWindowsイベントログログ種別(type
logComposer他のログ定義の利用logComposerタグの名前(target
注意
Windowsイベントログへログを出力する場合は、次のファイルが環境変数PATHに設定されていることを確認してください。
  • ujieventlog.dll

ファイルへ出力する場合には、プロセスごとに異なるファイルへ出力してください。また、異なる定義名から同一のファイルへ出力する場合には、次のように定義してください。

  <logComposer name="system">
    <output name="sysFileOut" type="file">
      <param name="path" value="/var/log"/>
      <param name="prefix" value="myapp"/>
      <param name="extension" value=".log"/>
    </output>
  </logComposer>
  <logComposer name="mylog01">
    <output name="myLogOut" type="logComposer">
      <!-- 定義名"system"のoutputタグの出力先へ出力 -->
      <param name="target" value="system"/>
    </output>
  </logComposer>
・ログのフォーマットを設定する
ログのフォーマットは、logFormatタグで指定します。

  <logComposer name="system">
    <output name="sysStdOut" type="stderr">
      <logFormat>%d %m</logFormat>
    </output>
  </logComposer>
・ログ出力クラス、ログレベルを指定する
logComposerタグのclass属性で、ログ出力クラスを変更することができます。
ログの出力レベルは、levelタグで指定します。


  <logComposer name="mylog">
    <level>20</level>
    <output name="mylogOut" type="stdout"/>
  </logComposer>
システムログの出力レベルは初期化パラメタのlogLevelで指定することもできます。
初期化パラメタとlevelタグの両方で指定した場合、初期化パラメタの指定が優先されます。
・ログ出力クラス、キューを指定する
logComposerタグのqueue属性で、ログが利用するキャッシュを指定することができます。-1を指定するとキャッシュは無効となります。

  <logComposer name="mylog" queue="100">
    <output name="mylogOut" type="stdout"/>
  </logComposer>
システムログのキャッシュ無効の設定は初期化パラメタのuji.log.enablecacheで指定することもできます。
初期化パラメタでキャッシュ無効の指定をし、logComposerタグのqueue属性を指定した場合、初期化パラメタの指定が優先されます。
注意
複数の管理名で同一の出力先へ出力する場合は、ログの混在を回避するために、ログ定義ファイルのoutputタグのtype属性に"logComposer"を指定して他の管理名の出力先へ出力するようにしてください。次に例を示します。

  <logComposer name="system">
    <output name="sysStdOut" type="stdout">
    </output>
  </logComposer>
  <logComposer name="mylog01">
    <output name="myLogOut" type="logComposer">
      <!-- 定義名"system"のoutputタグの出力先へ出力 -->
      <param name="target" value="system"/>
    </output>
  </logComposer>

・ログ出力ファイルを自動分割する
出力先にfileを指定した場合は、出力ファイルの自動分割が可能です。
下記の例では最大ファイル数(number)と、ファイル当たりのバイト数(byte)を指定しています。
その他日付形式(dateFormat)、分割時間(timeOffset)を指定した、日付による分割も指定できます。
詳細はログ定義ファイルリファレンスを参照してください。

  <logComposer name="system">
    <output name="sysFileOut" type="file">
      <param name="path" value="/var/log"/>
      <param name="prefix" value="myapp"/>
      <param name="extension" value=".log"/>
      <param name="number" value="10"/>
      <param name="byte" value="60000"/>
    </output>
  </logComposer>
・ログ定義ファイルの随時更新を可能にする。
commonタグのパラメタにwatchPeriodを指定することで、指定の時間間隔でログ出力クラスの再設定を行います。
例では、10分間隔でログ定義ファイルを参照します。

<?xml version="1.0" encoding="UTF-8" ?>
<logConfig
    xmlns="http://interstage.fujitsu.com/schemas/uji/logConf"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://interstage.fujitsu.com/schemas/uji/logConf
                        http://interstage.fujitsu.com/schemas/uji/logconf.xsd">
  <config>
    <version>7.0</version>
  </config>

  <common>
    <param name="watchPeriod" value="10"/>
  </common>

  <logComposer name="system">
    <output name="systemOutput" type="stderr"/>
  </logComposer>

  ....
</logConfig>
注意
  • LogComposerのメソッドにより、直接設定の変更を行った場合、ログ定義ファイルの随時更新までの間、メソッドで設定された状態が有効となります。
  • ログの再設定は、定義ファイルの更新時刻が前回の参照時刻から更新された場合に行います。

目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2005