5.5. ロギングの設定例
5.5.1. ルートロガーの XML 設定例
手順5.1 ルートロガーの設定
level
プロパティーを設定します。level
プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。<subsystem xmlns="urn:jboss:domain:logging:1.4"> <root-logger> <level name="INFO"/>
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>
- ログメッセージがキャプチャーされるログカテゴリーを指定するために、
category
プロパティーを使用します。use-parent-handlers
はデフォルトで"true"
に設定されています。"true"
に設定した場合、このカテゴリーは、割り当てられた他のハンドラーだけでなく、ルートロガーのログハンドラーを使用します。 - ログカテゴリーが記録するログメッセージの最大レベルを設定するために、
level
プロパティーを設定します。 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("JBAS.*"))"/> <formatter> <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> </console-handler> </subsystem>
ログハンドラーの ID 情報を追加します。
name
プロパティーは、このログハンドラーの一意の ID を設定します。autoflush
を"true"
に設定すると、ログメッセージは要求直後にハンドラーのターゲットに送信されます。level
プロパティーを設定します。level
プロパティーは、記録されるログメッセージの最大レベルを設定します。encoding
出力を設定します出力に使用する文字エンコーディングスキームを設定するには、encoding
を使用します。target
値を定義します。target
プロパティーは、ログハンドラーの出力先となるシステム出力ストリームを定義します。これはシステムエラーストリームの場合はSystem.err
、標準出力ストリームの場合はSystem.out
とすることができます。filter-spec
プロパティーを定義します。filter-spec
プロパティーはフィルターを定義する式の値です。以下の例では、not(match("JBAS.*"))
はパターンに一致しないフィルターを定義します。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>
ファイルログハンドラーの ID 情報を追加します。
name
プロパティーは、このログハンドラーの一意の ID を設定します。autoflush
を"true"
に設定すると、ログメッセージは要求直後にハンドラーのターゲットに送信されます。level
プロパティーを設定します。level
プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。encoding
出力を設定します出力に使用する文字エンコーディングスキームを設定するには、encoding
を使用します。file
オブジェクトを設定します。file
オブジェクトは、このログハンドラーの出力が書き込まれるファイルを表します。relative-to
とpath
の 2 つの設定プロパティーが含まれます。relative-to
プロパティーは、ログファイルが書き込まれるディレクトリーです。JBoss Enterprise Application Platform 6 のファイルパス変数をここで指定できます。jboss.server.log.dir
変数はサーバーのlog/
ディレクトリーを指します。path
プロパティーは、ログメッセージが書き込まれるファイルの名前です。これは、完全パスを決定するためにrelative-to
プロパティーの値に追加される相対パス名です。formatter
を指定します。このログハンドラーで使用するログフォーマッターの一覧を表示するには、formatter
を使用します。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>
定期ログハンドラーの ID 情報を追加します。
name
プロパティーは、このログハンドラーの一意の ID を設定します。autoflush
を"true"
に設定すると、ログメッセージは要求直後にハンドラーのターゲットに送信されます。level
プロパティーを設定します。level
プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。encoding
出力を設定します出力に使用する文字エンコーディングスキームを設定するには、encoding
を使用します。formatter
を指定します。このログハンドラーで使用するログフォーマッターの一覧を表示するには、formatter
を使用します。file
オブジェクトを設定します。file
オブジェクトは、このログハンドラーの出力が書き込まれるファイルを表します。relative-to
とpath
の 2 つの設定プロパティーが含まれます。relative-to
プロパティーは、ログファイルが書き込まれるディレクトリーです。JBoss Enterprise Application Platform 6 のファイルパス変数をここで指定できます。jboss.server.log.dir
変数はサーバーのlog/
ディレクトリーを指します。path
プロパティーは、ログメッセージが書き込まれるファイルの名前です。これは、完全パスを決定するためにrelative-to
プロパティーの値に追加される相対パス名です。suffix
値を設定しますsuffix
は、ローテーションされたログのファイル名に追加され、ローテーションの周期を決定するために使用されます。suffix
の形式では、ドット (.) の後にjava.text.SimpleDateFormat
クラスで解析できる日付文字列が指定されます。ログはsuffix
で定義された最小時間単位に基づいてローテーションされます。たとえば、yyyy-MM-dd
の場合は、ログが毎日ローテーションされます。http://docs.oracle.com/javase/6/docs/api/index.html?java/text/SimpleDateFormat.html を参照してください。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>
サイズログハンドラーの ID 情報を追加します。
name
プロパティーは、このログハンドラーの一意の ID を設定します。autoflush
を"true"
に設定すると、ログメッセージは要求直後にハンドラーのターゲットに送信されます。level
プロパティーを設定します。level
プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。encoding
出力を設定します出力に使用する文字エンコーディングスキームを設定するには、encoding
を使用します。file
オブジェクトを設定します。file
オブジェクトは、このログハンドラーの出力が書き込まれるファイルを表します。relative-to
とpath
の 2 つの設定プロパティーが含まれます。relative-to
プロパティーは、ログファイルが書き込まれるディレクトリーです。JBoss Enterprise Application Platform 6 のファイルパス変数をここで指定できます。jboss.server.log.dir
変数はサーバーのlog/
ディレクトリーを指します。path
プロパティーは、ログメッセージが書き込まれるファイルの名前です。これは、完全パスを決定するためにrelative-to
プロパティーの値に追加される相対パス名です。rotate-size
値を指定します。ログファイルがローテーションされる前に到達できる最大サイズです。数字に追加された単一の文字はサイズ単位を示します。バイトの場合はb
、キロバイトの場合はk
、メガバイトの場合はm
、ギガバイトの場合はg
になります。たとえば、50 メガバイトの場合は、50m
になります。max-backup-index
数を設定します。保持されるローテーションログの最大数です。この数字に達すると、最も古いログが再利用されます。formatter
を指定します。このログハンドラーで使用するログフォーマッターの一覧を表示するには、formatter
を使用します。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>
name
プロパティーは、このログハンドラーの一意の ID を設定します。level
プロパティーは、ルートロガーが記録するログメッセージの最大レベルを設定します。queue-length
は、サブハンドラーの応答を待機する間に、このハンドラーが保持するログメッセージの最大数を定義します。overflow-action
は、キューの長さを超えたときにこのハンドラーがどのように応答するかを定義します。これはBLOCK
またはDISCARD
に設定できます。BLOCK
の場合、キューでスペースが利用可能になるまでロギングアプリケーションが待機します。これは、非同期ではないログハンドラーと同じ動作です。DISCARD
の場合、ロギングアプリケーションは動作を続けますが、ログメッセージは削除されます。subhandlers
リストは、この非同期ハンドラーがログメッセージを渡すログハンドラーの一覧です。