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

F.7.3 デバッグ時と本稼動時で出力するログの種類を切り替えたい

Apcoordinatorのログ機能では出力する情報に重要度を表すレベルを設定することができます。また、一定以上のレベルのログのみを出力するように設定できます。このレベルを設定することにより、デバッグ時には多くの情報をログに出力し、本稼動時には重要なログに絞って出力するという制御が可能になります。

ログのレベル

レベルは整数で表され、0が最重要であり、数が大きくなるほど重要度が下がります。レベルは任意に設定できますが、Apcoordinatorが自動的にログに出力する情報では、以下のレベルを使用しています。

レベル

内容

0

最重要のログ

3

Apcoordinatorのエラーログのレベル

5

レベル未指定のメッセージに与えられるデフォルトレベルの初期値

10

Apcoordinatorのインフォメーションログのレベル

20

Apcoordinatorのトレースログのレベル

ログへ出力する情報にレベルを指定する

レベルを指定するには、com.fujitsu.uji.log.LogComposerクラスのprintlnメソッドでログを出力するときに、引数でレベルを指定します。

LogComposer lc = context.getLogComposer();
lc.println(7, "処理を開始");

「処理を開始」はレベル7で出力されます。

レベルを指定しないとデフォルトレベルが使用されます。デフォルトレベルの初期値は5ですが、LogComposerのsetDefaultLevelメソッドで設定を変更できます。

LogComposer lc = context.getLogComposer();
lc.setDefaultLevel(6);
lc.println("処理を開始");

「処理を開始」はレベル6で出力されます。

実際に出力される情報を重要なものだけに絞り込む

ログ出力レベルを指定すると、レベルがログ出力レベル以下の情報のみがログに出力されます。初期化パラメタで指定する方法、ログ定義ファイルで指定する方法、および、APIで指定する方法があります。デフォルトのログ出力レベルは9です。

初期化パラメタの場合、logLevelパラメタで指定します。初期化パラメタの指定方法はアプリケーション種別ごとに異なります。Webアプリケーションの場合、初期化パラメタはWebアプリケーション環境定義ファイル(web.xml)で以下のように指定します。

<web-app xmlns=http://java.sun.com/xml/ns/j2ee
      xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
      xsi:schemaLocation=http://java.sun.com/xml/ns/j2ee
                         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
      version="2.4">
  <context-param>
    <param-name>logLevel</param-name>
    <param-value>5</param-value>
  </context-param>
</web-app>

この指定では、レベルが5以下の(レベル5と同じかより重要な)情報のみが出力されます。

ログ定義ファイルの場合、levelタグで指定します。ログ定義ファイルは、設定ファイル格納フォルダ下のlogConf.xml、または、初期化パラメタuji.logConfで指定の定義ファイルで以下のように指定します。

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

この指定では、レベルが5以下の(レベル5と同じかより重要な)情報のみが出力されます。

APIで指定する場合、LogComposerクラスのsetLogLevelメソッドで指定します。

LogComposer lc = context.getLogComposer();
lc.setLogLevel(5);

初期化パラメタとAPIの両方で指定した場合、APIでの指定が優先されます。 定義ファイルと初期化パラメタの両方で指定した場合、初期化パラメタが優先されます。

注意

LogComposerクラスの以下の2つのメソッドの違いは以下のとおりです。

  • setDefaultLevelメソッド: 出力する情報に与えるデフォルトのレベルを指定します。printlnメソッド使用時にレベルを省略した場合にデフォルトのレベルが使用されます。

  • setLogLevelメソッド: 実際にファイルなどに出力される情報を指定レベルより重要なものだけに絞り込む場合に、そのレベルを指定します。

関連項目