第 6 章 WebSphere Product Center のロガー

WebSphere Product Center は、ログを生成する事前定義されたファイルを提供します。これは、WebSphere Product Center 内の問題をトラブルシューティングするのに使用することができます。本書では、ロギング・メカニズムの概要について説明し、ログ・ファイルのセットアップ方法について説明します。


WebSphere Product Center のサービス・ログ構成ファイル

以下のファイルは、WebSphere Product Center 全体にあるさまざまなサブシステムを制御します。生成されるログのロケーションは各ファイルで定義されます。

: すべてのパスは $TOP と相対関係にあります。

/etc/logs/eventprocessor.log.xml

/etc/logs/scheduler.log.xml

/etc/logs/system.log.xml

/etc/logs/appsvr.log.xml

/etc/logs/workflowengine.log.xml


ランタイム生成ログ

ランタイム生成ログを使用して、エラーがないかどうか確認できます。これにより、WebSphere Product Center または内部のサポート・インフラストラクチャーに関連した問題がある場合に、その問題をトラブルシューティングするのに役立ちます。

WebSphere Product Center によって生成されたログ・ファイルは $TOP/logs/*.log に保管されます。

ログ・ファイルの構成

WebSphere Product Center ログ・ファイルのプロパティーは、必要に応じて編集することができます (たとえば、ロケーション、最大サイズ、形式など)。以下のセクションでは、ログを構成するのに使用されるエレメントについて説明し、WebSphere Product Center ログ・ファイルの構成時に使用されることのある値のリストを提供します。

ロケーションの変更

: ファイルおよびローリング付加にのみ適用されます。

生成されたログ・ファイルのロケーションを変更するには、指定されたログ構成ファイルのパラメーターを変更します。

たとえば、以下のようにします。

<param name="File"   value="${TOP}/logs/webserver_db.log " />

ファイル・サイズの変更

: ローリング付加にのみ適用されます。

ログ・ファイルのサイズは、出力の上位オーダーの交替およびパージを開始する前に、指定したストレージ・サイズに設定することができます。ファイルがいつ切り捨てを開始するかを制御するには、ログ・ファイル・サイズのパラメーター値を変更します。

たとえば、以下のようにします。

<param name="maxFileSize" value="10MB" />

ファイル・バックアップ・オプションの変更

: ローリング付加にのみ適用されます。

ロガーを定義して、指定したログ・ファイルのバックアップ数を保つことができます。最大値に達すると、最も古いファイルが消去されます。

たとえば、以下のようにします。

<param name="maxBackupIndex" value="2" />

変換パターンの変更

ログのレイアウト構成は、変換パターンを再定義することによって変更することができます。

たとえば、以下のようにします。

<param name="ConversionPattern" value=
"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>

この変換パターンは、C における printf 関数の変換パターンと密接に関連しています。変換パターンはリテラル・テキストと、変換指定子と呼ばれるフォーマット制御式で成り立っています。

: 変換パターン内にリテラル・テキストの挿入は任意です。


変換指定子

それぞれの変換指定子は、パーセント記号 "%" で始まり、オプションの形式修飾子および変換文字が後に続きます。

% (形式修飾子)(変換文字)

たとえば、以下のようにします。

%-5p [%t]: %m%n

デフォルトでは、関連情報はそのまま出力されます。ただし、形式修飾子を使用して、フィールドの最小幅、フィールドの最大幅および位置調整を変更することは可能です。

パーセント記号と変換文字の間に、オプションのフォーマット修飾子が配置されます。この例では、変換指定子
%-5p は、ロギングの優先順位を 5 文字の幅になるよう左に位置調整することを意味しています。

最初のオプションのフォーマット修飾子は、単にマイナス (-) 文字で表される左位置調整フラグです。さらに、オプションのフィールドの最小幅修飾子が続きます。これは、出力する最小文字数を表す 10 進定数です。データ・アイテムに必要な文字数がもっと少ない場合は、最小幅に達するまで、データ・アイテムは左または右のいずれかに埋め込まれます。

デフォルトでは、左に埋め込まれ (右位置調整) ますが、左の位置調整フラグを使用して右の埋め込みを指定することができます。埋め込み文字はスペースです。データ・アイテムがフィールドの最小幅より大きい場合、フィールドはデータを収容できるように拡張されます。値が切り捨てられることはありません。

この振る舞いは、10 進定数が後に続くピリオドによって指定された、フィールドの最大幅修飾子を使用して変更できます。データ・アイテムが最大フィールドより大きい場合、余分の文字がデータ・アイテムの最後ではなく先頭から除去されます。

たとえば、フィールドの最大幅が 8 であり、データ・アイテムが 10 文字の長さである場合、データ・アイテムの最初の 2 文字が除去されます。

: この振る舞いは、切り捨てが最後から行われる C における printf 関数から逸脱しています。

以下のページでは、変換指定子の定義に使用する値を提供します。


形式修飾子

以下は、カテゴリー変換指定子のさまざまなフォーマット修飾子の例です。

フォーマット修飾子

左位置調整

最小

最大幅

コメント

%20c

False

20

なし

カテゴリー名が 20 文字より短い場合、スペースを使用して左に埋め込みます。

%-20c

True

20

なし

カテゴリー名が 20 文字より短い場合、スペースを使用して右に埋め込みます。

%30c

NA

なし

30

カテゴリー名が 30 文字より長い場合、先頭から切り捨てます。

%20.30c

False

20

30

カテゴリー名が 20 文字より短い場合、スペースを使用して左に埋め込みます。ただし、カテゴリー名が 30 文字より長い場合、先頭から切り捨てます。

%-20.30c

True

20

30

カテゴリー名が 20 文字より短い場合、スペースを使用して右に埋め込みます。ただし、カテゴリー名が 30 文字より長い場合、先頭から切り捨てます。


変換文字

以下は、認識される変換文字のリストです。

変換文字

効果

c

ロギング・イベントのカテゴリーを出力するのに使用されます。精度指定子はオプションで、括弧内の 10 進定数であるカテゴリー変換指定子の後に置くことができます。

精度指定子が指定されると、カテゴリー名の一番右にある対応する数のみが出力されます。デフォルトでは、カテゴリー名は全体が出力されます。

たとえば、カテゴリー名 "a.b.c" の場合、パターン %c{2} は "b.c" を出力します。

d

ロギング・イベントの日付を出力するのに使用されます。中括弧で囲まれた日付形式指定子を、日付変換指定子の後に続けることができます。

たとえば、%d{HH:mm:ss,SSS} あるいは %d{dd MMM yyyy HH:mm:ss,SSS}。日付形式指定子を指定しなかった場合、ISO8601 形式が想定されます。

日付形式指定子は、SimpleDateFormat の時刻パターン・ストリングと同じ構文を許可します。標準 JDK の一部ですが、SimpleDateFormat のパフォーマンスは非常に貧弱です。

結果を改善するには、log4j 日付フォーマッターを使用することをお勧めします。これは、AbsoluteTimeDateFormat、DateTimeDateFormat、および ISO8601DateFormat をそれぞれ指定するための、ストリング "ABSOLUTE"、"DATE"、および "ISO8601" のいずれかを使用して指定することができます。例、%d{ISO8601} または %d{ABSOLUTE}。

これらの専用日付フォーマッターのパフォーマンスのほうが、SimpleDateFormat よりも良好です。

m

ロギング・イベントに関連した WebSphere Product Center 提供のメッセージを出力するのに使用されます。

n

プラットフォーム依存の行区切り文字を出力します。

この変換文字は、"\n"、または "\r\n" などの可搬性のない行分離文字を使用した場合と同じパフォーマンスを実際に提供します。このため、これは行分離文字を指定する好ましい方法です。

p

ロギング・イベントの優先順位を出力するのに使用されます。

r

WebSphere Product Center を始動してからロギング・イベントが作成されるまでに経過したミリ秒数を出力するのに使用されます。

t

ロギング・イベントを生成したスレッドの名前を出力するのに使用されます。

x

ロギング・イベントを生成したスレッドに関連した NDC (ネストされた診断コンテキスト) を出力するのに使用されます。

%

シーケンス %% は単一のパーセント記号を出力します。


WebSphere Product Center のロギング・セットアップ・ファイル

以下の例では、WebSphere Product Center のログ・ファイルを定義する方法を示します。太字のエントリーは、WebSphere Product Center ログ・ファイルの構成を設定します。

<!-- basic ASYNC appender -->
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="DEFAULT"/>
</appender>

 

<!-- basic CONSOLE appender. This is the same as doing system.out-->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value=

"[%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>

<!-- simple FILE appender. The file will be opened and if append is true  -->
<!--                       it will not be truncated                       -->
<appender name="DEFAULT" class="org.apache.log4j.FileAppender">
   <param name="File"   value="${TOP}/logs/tomcat_default.log " />
   <param name="Append" value="true" />           
   <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value=

"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
    </layout>       
</appender>

<!-- Rolling FILE appender. The file will be opened and if append is true  -->
<!--                        it will not be truncated                       -->
<!--                        maxFileSize: How big before you rotate         -->
<!--                        maxBackupIndex: How many backups do you keep?  -->
   <appender name="DB" class="org.apache.log4j.RollingFileAppender">
      <param name="File"   value="${TOP}/logs/tomcat_db.log " />
      <param name="Append" value="true" />           
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="2" />
<layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" value=

"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
  </layout>       
</appender>

<!-- For the austin.db category, you want to have only a few logs kept hence -->
<!--  the rollingappender -->
<category name="austin.db" additivity=" false">
      <priority value="INFO" />
      <appender-ref ref="DB" />
</category>

<!-- ROOT CATEGORY -->
<!-- MUST ALWAYS BE LAST ENTRY AND HAVE AN APPENDER-->
<!-- If a logging event is not caught by any other logger it will be handled by this-->
<!-- rule. -->
<root>
      <priority value="error"/>
      <appender-ref ref="DEFAULT"/>
</root>

</log4j:configuration>