5.5. ロギングの設定例

5.5.1. ルートロガーの XML 設定例

以下の手順は、ルートロガーの設定例を示しています。

手順5.1 ルートロガーの設定

  1. level プロパティーを設定します。

    level プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。
    <subsystem xmlns="urn:jboss:domain:logging:1.4">
       <root-logger>
          <level name="INFO"/>
  2. handlers を一覧表示します

    handlers は、ルートロガーによって使用されるログハンドラーの一覧です。
    <subsystem xmlns="urn:jboss:domain:logging:1.4">
         <root-logger>
            <level name="INFO"/>
            <handlers>
               <handler name="CONSOLE"/>
               <handler name="FILE"/>
            </handlers>
         </root-logger>
      </subsystem>

5.5.2. ログカテゴリーの XML 設定例

以下の手順は、ログカテゴリーの設定例を示しています。

手順5.2 ログカテゴリーの設定

<subsystem xmlns="urn:jboss:domain:logging:1.4">
   <logger category="com.company.accounts.rec" use-parent-handlers="true">
      <level name="WARN"/>
      <handlers>
         <handler name="accounts-rec"/>
      </handlers>
   </logger>
</subsystem>
  1. ログメッセージがキャプチャーされるログカテゴリーを指定するために、category プロパティーを使用します。
    use-parent-handlers はデフォルトで "true" に設定されています。"true" に設定した場合、このカテゴリーは、割り当てられた他のハンドラーだけでなく、ルートロガーのログハンドラーを使用します。
  2. ログカテゴリーが記録するログメッセージの最大レベルを設定するために、level プロパティーを設定します。
  3. handlers 要素には、ログハンドラーのリストが含まれます。

5.5.3. コンソールログハンドラーの XML 設定例

以下の手順は、コンソールログハンドラーの設定例を示しています。

手順5.3 コンソールログハンドラーの設定

<subsystem xmlns="urn:jboss:domain:logging:1.4">
   <console-handler name="CONSOLE" autoflush="true">
      <level name="INFO"/>
      <encoding value="UTF-8"/>
      <target value="System.out"/>
      <filter-spec value="not(match(&quot;JBAS.*&quot;))"/>
      <formatter>
         <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
      </formatter>
   </console-handler>
</subsystem>
  1. ログハンドラーの ID 情報を追加します。

    name プロパティーは、このログハンドラーの一意の ID を設定します。
    autoflush"true" に設定すると、ログメッセージは要求直後にハンドラーのターゲットに送信されます。
  2. level プロパティーを設定します。

    level プロパティーは、記録されるログメッセージの最大レベルを設定します。
  3. encoding 出力を設定します

    出力に使用する文字エンコーディングスキームを設定するには、encoding を使用します。
  4. target 値を定義します。

    target プロパティーは、ログハンドラーの出力先となるシステム出力ストリームを定義します。これはシステムエラーストリームの場合は System.err、標準出力ストリームの場合は System.out とすることができます。
  5. filter-spec プロパティーを定義します。

    filter-spec プロパティーはフィルターを定義する式の値です。以下の例では、not(match("JBAS.*")) はパターンに一致しないフィルターを定義します。
  6. formatter を指定します。

    このログハンドラーで使用するログフォーマッターの一覧を表示するには、formatter を使用します。

5.5.4. ファイルログハンドラーの XML 設定例

以下の手順は、ファイルログハンドラーの設定例を示しています。

手順5.4 ファイルログハンドラーの設定

<file-handler name="accounts-rec-trail" autoflush="true">
    <level name="INFO"/>
    <encoding value="UTF-8"/>
    <file relative-to="jboss.server.log.dir" path="accounts-rec-trail.log"/>
    <formatter>
        <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
    </formatter>
    <append value="true"/>
</file-handler>
  1. ファイルログハンドラーの ID 情報を追加します。

    name プロパティーは、このログハンドラーの一意の ID を設定します。
    autoflush"true" に設定すると、ログメッセージは要求直後にハンドラーのターゲットに送信されます。
  2. level プロパティーを設定します。

    level プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。
  3. encoding 出力を設定します

    出力に使用する文字エンコーディングスキームを設定するには、encoding を使用します。
  4. file オブジェクトを設定します。

    file オブジェクトは、このログハンドラーの出力が書き込まれるファイルを表します。relative-topath の 2 つの設定プロパティーが含まれます。
    relative-to プロパティーは、ログファイルが書き込まれるディレクトリーです。JBoss Enterprise Application Platform 6 のファイルパス変数をここで指定できます。jboss.server.log.dir 変数はサーバーの log/ ディレクトリーを指します。
    path プロパティーは、ログメッセージが書き込まれるファイルの名前です。これは、完全パスを決定するために relative-to プロパティーの値に追加される相対パス名です。
  5. formatter を指定します。

    このログハンドラーで使用するログフォーマッターの一覧を表示するには、formatter を使用します。
  6. append プロパティーを設定します。

    append プロパティーを "true" に設定した場合、このハンドラーが追加したすべてのメッセージが既存のファイルに追加されます。"false" に設定した場合、アプリケーションサーバーが起動するたびに新規ファイルが作成されます。append への変更を反映させるには、サーバーの再起動が必要です。

5.5.5. 定期ログハンドラーの XML 設定例

以下の手順は、定期ログハンドラーの設定例を示しています。

手順5.5 定期ログハンドラーの設定

<periodic-rotating-file-handler name="FILE" autoflush="true">
   <level name="INFO"/>
   <encoding value="UTF-8"/>
   <formatter>
      <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
   </formatter>
   <file relative-to="jboss.server.log.dir" path="server.log"/>
   <suffix value=".yyyy-MM-dd"/>
   <append value="true"/>
</periodic-rotating-file-handler>
  1. 定期ログハンドラーの ID 情報を追加します。

    name プロパティーは、このログハンドラーの一意の ID を設定します。
    autoflush"true" に設定すると、ログメッセージは要求直後にハンドラーのターゲットに送信されます。
  2. level プロパティーを設定します。

    level プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。
  3. encoding 出力を設定します

    出力に使用する文字エンコーディングスキームを設定するには、encoding を使用します。
  4. formatter を指定します。

    このログハンドラーで使用するログフォーマッターの一覧を表示するには、formatter を使用します。
  5. file オブジェクトを設定します。

    file オブジェクトは、このログハンドラーの出力が書き込まれるファイルを表します。relative-topath の 2 つの設定プロパティーが含まれます。
    relative-to プロパティーは、ログファイルが書き込まれるディレクトリーです。JBoss Enterprise Application Platform 6 のファイルパス変数をここで指定できます。jboss.server.log.dir 変数はサーバーの log/ ディレクトリーを指します。
    path プロパティーは、ログメッセージが書き込まれるファイルの名前です。これは、完全パスを決定するために relative-to プロパティーの値に追加される相対パス名です。
  6. suffix 値を設定します

    suffix は、ローテーションされたログのファイル名に追加され、ローテーションの周期を決定するために使用されます。suffix の形式では、ドット (.) の後に java.text.SimpleDateFormat クラスで解析できる日付文字列が指定されます。ログは suffix で定義された最小時間単位に基づいてローテーションされます。たとえば、yyyy-MM-dd の場合は、ログが毎日ローテーションされます。http://docs.oracle.com/javase/6/docs/api/index.html?java/text/SimpleDateFormat.html を参照してください。
  7. append プロパティーを設定します。

    append プロパティーを "true" に設定した場合、このハンドラーが追加したすべてのメッセージが既存のファイルに追加されます。"false" に設定した場合、アプリケーションサーバーが起動するたびに新規ファイルが作成されます。append への変更を反映させるには、サーバーの再起動が必要です。

5.5.6. サイズログハンドラーの XML 設定例

以下の手順は、サイズログハンドラーの設定例を示しています。

手順5.6 サイズログハンドラーの設定

<size-rotating-file-handler name="accounts_debug" autoflush="false">
   <level name="DEBUG"/>
   <encoding value="UTF-8"/>
   <file relative-to="jboss.server.log.dir" path="accounts-debug.log"/>
   <rotate-size value="500k"/>
   <max-backup-index value="5"/>
   <formatter>
        <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
    </formatter>
   <append value="true"/>
</size-rotating-file-handler>
  1. サイズログハンドラーの ID 情報を追加します。

    name プロパティーは、このログハンドラーの一意の ID を設定します。
    autoflush"true" に設定すると、ログメッセージは要求直後にハンドラーのターゲットに送信されます。
  2. level プロパティーを設定します。

    level プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。
  3. encoding 出力を設定します

    出力に使用する文字エンコーディングスキームを設定するには、encoding を使用します。
  4. file オブジェクトを設定します。

    file オブジェクトは、このログハンドラーの出力が書き込まれるファイルを表します。relative-topath の 2 つの設定プロパティーが含まれます。
    relative-to プロパティーは、ログファイルが書き込まれるディレクトリーです。JBoss Enterprise Application Platform 6 のファイルパス変数をここで指定できます。jboss.server.log.dir 変数はサーバーの log/ ディレクトリーを指します。
    path プロパティーは、ログメッセージが書き込まれるファイルの名前です。これは、完全パスを決定するために relative-to プロパティーの値に追加される相対パス名です。
  5. rotate-size 値を指定します。

    ログファイルがローテーションされる前に到達できる最大サイズです。数字に追加された単一の文字はサイズ単位を示します。バイトの場合は b、キロバイトの場合は k、メガバイトの場合は m、ギガバイトの場合は g になります。たとえば、50 メガバイトの場合は、50m になります。
  6. max-backup-index 数を設定します。

    保持されるローテーションログの最大数です。この数字に達すると、最も古いログが再利用されます。
  7. formatter を指定します。

    このログハンドラーで使用するログフォーマッターの一覧を表示するには、formatter を使用します。
  8. append プロパティーを設定します。

    append プロパティーを "true" に設定した場合、このハンドラーが追加したすべてのメッセージが既存のファイルに追加されます。"false" に設定した場合、アプリケーションサーバーが起動するたびに新規ファイルが作成されます。append への変更を反映させるには、サーバーの再起動が必要です。

5.5.7. 非同期ログハンドラーの XML 設定例

以下の手順は、非同期ログハンドラーの設定例を示しています。

手順5.7 非同期ログハンドラーの設定

<async-handler name="Async_NFS_handlers">
   <level name="INFO"/>
   <queue-length value="512"/>
   <overflow-action value="block"/>
   <subhandlers>
      <handler name="FILE"/>
      <handler name="accounts-record"/>
   </subhandlers>
</async-handler>
  1. name プロパティーは、このログハンドラーの一意の ID を設定します。
  2. level プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。
  3. queue-length は、サブハンドラーの応答を待機する間に、このハンドラーが保持するログメッセージの最大数を定義します。
  4. overflow-action は、キューの長さを超えたときにこのハンドラーがどのように応答するかを定義します。これは BLOCK または DISCARD に設定できます。BLOCK の場合、キューでスペースが利用可能になるまでロギングアプリケーションが待機します。これは、非同期ではないログハンドラーと同じ動作です。DISCARD の場合、ロギングアプリケーションは動作を続けますが、ログメッセージは削除されます。
  5. subhandlers リストは、この非同期ハンドラーがログメッセージを渡すログハンドラーの一覧です。