Apcoordinator ユーザーズガイド
|
目次
|
4.2.5 定義ファイルを用いたログ出力(new)
ログ定義ファイルを利用することにより、Apcoordinatorが標準で利用するログ(標準ログ)とユーザアプリケーションで利用するログを分けることが可能です。
標準で利用するログは、アプリケーションに記述を行わなくてもApcoordinatorがログを出力します。
ログ定義ファイルの格納先は設定ファイルフォルダを参照してください。
Apcoordinatorで出力するログは以下のように分類されています。
分類 | 管理名 | 用途
|
標準ログ | system | Apcoordinatorの稼働状況を出力します。
|
ユーザログ | 上記以外の任意の名称 | アプリケーションで任意に使用することができます。
|
- 管理名として「journal」と「performance」を利用することはできません。
- ログ定義ファイルを利用する場合、ApplicationProfileクラスのnewLogComposerが返すLogComposerオブジェクトは利用されません。
■ログ出力の記述
ビジネスメソッドでは、以下の記述でログを出力します。
ログ出力クラス(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の場合)のように設定します。
|
syslog | Syslog | ホスト名(hostname )、機能(facility )、重大度(severity )、文字エンコーディング(encoding )
|
event | Windowsイベントログ | ログ種別(type )
|
logComposer | 他のログ定義の利用 | logComposer タグの名前(target )
|
Windowsイベントログへログを出力する場合は、次のファイルが環境変数PATHに設定されていることを確認してください。
ファイルへ出力する場合には、プロセスごとに異なるファイルへ出力してください。また、異なる定義名から同一のファイルへ出力する場合には、次のように定義してください。
<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