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