2.6.2. ロギングサービス

2.6.2. ロギングサービス

JBoss では、ロギングに log4j が使用されています。 log4j パッケージの知識が不十分な場合や、これを自分の アプリケーションで使用したい場合は、その詳細を Jakarta の Web サイトで読むことが出来ます。 (http://jakarta.apache.org/log4j/).

ロギングは conf/log4j.xml ファイルから集中的に制御されています。 このファイルは、ログファイル、どのカテゴリのメッセージがそこに行くべきか、メッセージ形式、 及びフィルタのレベル等を指定するアペンダー(appender)のセットを定義します。デフォルトでは、 JBoss はコンソールとログファイル (log ディレクトリ内の server.log) の両方に出力を表示します。

五つの基本ログレベルが使用されています: DEBUGINFOWARNERRORFATAL です。コンソール上のロギング閾値は INFO で、これはコンソール上ではユーザーは情報メッセージ、警告メッセージ、及びエラーメッセージを見ますが、全般的なデバグメッセージは見ないという意味です。これに対して server.log ファイルには閾値がなく、 全ての生成されたロギングメッセージはそこにログされます。

もし、何か問題が発生した事態に、コンソール内では役立つ情報がない場合は、 常に server.log ファイルを見て、問題追跡の手助けになるかも 知れないデバグメッセージがあるかどうか探します。しかし、ロギング閾値がデバグ メッセージの表示を可能にするという理由だけでは、全ての JBoss がログファイル用に詳細デバグ情報を生成するとは限りません。また、個別カテゴリのロギング限度を高くセットする必要があります。以下のようなカテゴリを例にして下さい。

<!-- Limit JBoss categories to INFO --> 
<category name="org.jboss"> 
    <priority value="INFO"/> 
</category>    

これは特定の割り込みが用意されているクラス以外は、全ての JBoss クラス用にロギングのレベルを INFO に制限します。これを DEBUG に変更すると、 もっと詳細なロギング出力が生成されることになります。

もう一つの例として、生成された SQL コマンドを解析するためにコンテナ管理の固執エンジンからの出力を DEBUG レベルにセットして、それを別のファイル cmp.log に転送したいとしましょう。その場合、log4j.xml ファイルに以下のコードを追加することになります:

<appender name="CMP" class="org.jboss.logging.appender.RollingFileAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <param name="File" value="${jboss.server.home.dir}/log/cmp.log"/> 
    <param name="Append" value="false"/> 
    <param name="MaxFileSize" value="500KB"/> 
    <param name="MaxBackupIndex" value="1"/> 
 
    <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> 
    </layout> 
</appender> 
 
<category name="org.jboss.ejb.plugins.cmp"> 
    <priority value="DEBUG" /> 
    <appender-ref ref="CMP"/> 
</category> 

これが、新ファイルのアペンダーを作成して、パッケージ org.jboss.ejb.plugins.cmp 用にロガー(又はカテゴリ)で使用されるように指定します。

ファイルアペンダーは、ユーザーがサーバーを再スタートする度に、又は一つの ファイルを書き込む度に無限に新規ログを作成するのではなく、一日毎に新しいログファイルを作成するようにセットされています。現在のログファイルは cmp.log です。 古いファイルでは書き込まれた時の日付をその名前に追加してあります。log ディレクトリはまた、 Web コンテナで作成される HTTP 要求ログも含んでいることが判るでしょう。