4.3. デプロイメントごとのロギング
デプロイメントごとのロギングを使用すると、開発者はアプリケーションのロギング設定を事前に設定できます。アプリケーションがデプロイされると、定義された設定に従ってロギングが開始されます。この設定によって作成されたログファイルにはアプリケーションの動作に関する情報のみが含まれます。
デプロイメントごとのロギング設定が行われない場合、すべてのアプリケーションとサーバーには logging
サブシステムの設定が使用されます。
この方法では、システム全体のロギングを使用する利点と欠点があります。利点は、JBoss EAP インスタンスの管理者がサーバーロギング以外のロギングを設定する必要がないことです。欠点は、デプロイメントごとのロギング設定はサーバーの起動時に読み取り専用であるため、実行時に変更できないことです。
4.3.1. デプロイメントごとのロギングをアプリケーションに追加
アプリケーションのデプロイメントごとのロギングを設定するには、logging.properties
設定ファイルをデプロイメントに追加します。この設定ファイルは、JBoss Log Manager が基礎となるログマネージャーである場合にどのロギングファサードとも使用できるため、推奨されます。
設定ファイルが追加されるディレクトリーは、デプロイメント方法によって異なります。
-
EAR デプロイメントの場合は、ロギング設定ファイルを
META-INF/
ディレクトリーにコピーします。 -
WAR または JAR デプロイメントの場合は、ロギング設定ファイルを
WEB-INF/classes/
ディレクトリーにコピーします。
Simple Logging Facade for Java (SLF4J)
または Apache log4j
を使用している場合は、logging.properties
設定ファイルが適しています。Apache log4j アペンダーを使用している場合は、log4j.properties
設定ファイルが必要になります。jboss-logging.properties
設定ファイルはレガシーデプロイメントのみでサポートされます。
logging.properties の設定
logging.properties
ファイルはサーバーが起動し、logging
サブシステムが起動するまで使用されます。logging
サブシステムが設定に含まれない場合、サーバーはこのファイルの設定をサーバー全体のロギング設定として使用します。
JBoss ログマネージャーの設定オプション
ロガーオプション
-
loggers=<category>[,<category>,…]
- 設定するロガーカテゴリーのコンマ区切りのリストを指定します。ここで記載されていないカテゴリーは、以下のプロパティーから設定されません。 -
logger.<category>.level=<level>
- カテゴリーのレベルを指定します。このレベルは有効なレベルのいずれかになります。指定されない場合は、最も近い親のレベルが継承されます。 -
logger.<category>.handlers=<handler>[,<handler>,…]
- このロガーに割り当てるハンドラー名のコンマ区切りのリストを指定します。ハンドラーは同じプロパティーファイルで設定する必要があります。 -
logger.<category>.filter=<filter>
- カテゴリーのフィルターを指定します。 -
logger.<category>.useParentHandlers=(true|false)
- ログメッセージを親ハンドラーにカスケードするかどうかを指定します。デフォルト値はtrue
です。
ハンドラーオプション
handler.<name>=<className>
- インスタンス化するハンドラーのクラス名を指定します。このオプションは必須です。注記表4.1 可能なクラス名
名前 関連するクラス Console
org.jboss.logmanager.handlers.ConsoleHandler
File
org.jboss.logmanager.handlers.FileHandler
Periodic
org.jboss.logmanager.handlers.PeriodicRotatingFileHandler
Size
org.jboss.logmanager.handlers.SizeRotatingFileHandler
Periodic Size
org.jboss.logmanager.handlers.PeriodicSizeRotatingFileHandler
Syslog
org.jboss.logmanager.handlers.SyslogHandler
Async
org.jboss.logmanager.handlers.AsyncHandler
Custom
ハンドラーは関連するあらゆるクラスまたはモジュールを持つことができます。このハンドラーはlogging
サブシステムにあり、ユーザーは独自のログハンドラーを定義できます。詳細は、JBoss EAP『設定ガイド』の「ログハンドラー」を参照してください。
-
handler.<name>.level=<level>
- このハンドラーのレベルを制限します。指定されない場合は、ALL のデフォルト値が保持されます。 -
handler.<name>.encoding=<encoding>
- 文字エンコーディングを指定します (このハンドラータイプによりサポートされている場合)。指定されない場合は、ハンドラー固有のデフォルト値が使用されます。 -
handler.<name>.errorManager=<name>
- 使用するエラーマネージャーの名前を指定します。エラーマネージャーは同じプロパティーファイルで設定する必要があります。指定されない場合は、エラーマネージャーが設定されません。 -
handler.<name>.filter=<name>
- カテゴリーのフィルターを指定します。フィルターの定義の詳細は、フィルター式を参照してください。 -
handler.<name>.formatter=<name>
- 使用するフォーマッターの名前を指定します (このハンドラータイプによりサポートされている場合)。フォーマッターは同じプロパティーファイルで設定する必要があります。指定されない場合、ほとんどのハンドラータイプのメッセージはログに記録されません。 handler.<name>.properties=<property>[,<property>,…]
- 追加的に設定する JavaBean 形式のプロパティーを指定します。指定のプロパティーが適切に変換されるように、基本的なタイプイントロスペクションが行われます。JBoss Log Manager のすべてのファイルハンドラーには、
fileName
の前にappend
を設定する必要があります。handler.<name>.properties
でプロパティーを指定する順番は、プロパティーが設定される順番になります。-
handler.<name>.constructorProperties=<property>[,<property>,…]
- 構築パラメーターとして使用する必要があるプロパティーのリストを指定します。指定のプロパティーが適切に変換されるように、基本的なタイプイントロスペクションが行われます。 -
handler.<name>.<property>=<value>
- 名前付きプロパティーの値を設定します。 -
handler.<name>.module=<name>
- ハンドラーが存在するモジュールの名前を指定します。
詳細は、JBoss EAP 『設定ガイド』の「ログハンドラーの属性」を参照してください。
エラーマネージャーオプション
-
errorManager.<name>=<className>
- インスタンス化するエラーマネージャーのクラス名を指定します。このオプションは必須です。 -
errorManager.<name>.properties=<property>[,<property>,…]
- 追加的に設定する JavaBean 形式のプロパティーを指定します。指定のプロパティーが適切に変換されるように、基本的なタイプイントロスペクションが行われます。 -
errorManager.<name>.<property>=<value>
- 名前のついたプロパティーの値を設定します。
フォーマッターオプション
-
formatter.<name>=<className>
- インスタンス化するフォーマッターのクラス名を指定します。このオプションは必須です。 -
formatter.<name>.properties=<property>[,<property>,…]
- 追加的に設定する JavaBean 形式のプロパティーを指定します。指定のプロパティーが適切に変換されるように、基本的なタイプイントロスペクションが行われます。 -
formatter.<name>.constructorProperties=<property>[,<property>,…]
- 構築パラメーターとして使用する必要があるプロパティーのリストを指定します。指定のプロパティーが適切に変換されるように、基本的なタイプイントロスペクションが行われます。 -
formatter.<name>.<property>=<value>
- 名前付きプロパティーの値を設定します。
以下の例は、コンソールにログ記録する logging.properties
ファイルの最低限の設定を示しています。
例: 最低限の logging.properties
設定
# Additional logger names to configure (root logger is always configured) # loggers= # Root logger level logger.level=INFO # Root logger handlers logger.handlers=CONSOLE # Console handler configuration handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler handler.CONSOLE.properties=autoFlush handler.CONSOLE.autoFlush=true handler.CONSOLE.formatter=PATTERN # Formatter pattern configuration formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter formatter.PATTERN.properties=pattern formatter.PATTERN.pattern=%K{level}%d{HH:mm:ss,SSS} %-5p %C.%M(%L) [%c] %s%e%n