7.2. ファイルへのログイン

コンソールのロギングの他に、アプリケーションのログをファイルに保存できます。通常、デプロイメントはローテーションログを使用してディスク領域を節約します。

Thorntail では、ロギングはシステムプロパティーを使用して設定されます。アプリケーションの起動時に -Dproperty=value 構文を使用することはできますが、YAML プロファイルファイルを使用してファイルロギングを設定することを強く推奨します。

前提条件

  • ロギング分が有効になっている Maven ベースのアプリケーション。詳細は、「「ロギングの有効化」」を参照してください。
  • ファイルシステムの書き込み可能なディレクトリー。

手順

  1. 任意の YAML プロファイルファイルを開きます。使用するものが分からない場合は、アプリケーションソースの src/main/resources ディレクトリーで project-defaults.yml を開きます。YAML ファイルに、以下のセクションを追加します。

    thorntail:
      logging:
  2. フォーマッターを設定します(オプション)。デフォルトでは、以下のフォーマッターが設定されます。

    PATTERN
    ファイルへのログインに役立ちます。
    COLOR_PATTERN
    色出力。コンソールへのログインに役立ちます。

    カスタムフォーマッターを設定するには、logging セクションに選択したパターンで新しいフォーマッターを追加します。この例では、LOG_FORMATTER という名前です。

    pattern-formatters:
      LOG_FORMATTER:
        pattern: "%p [%c] %s%e%n"
  3. ロガーで使用するファイルハンドラーを設定します。この例は、周期ローテーションファイルハンドラーの設定を示しています。logging で、新しいハンドラーが含まれる Periodic-rotating-file-handlers セクションを追加します。

    periodic-rotating-file-handlers:
      FILE:
        file:
          path: target/MY_APP_NAME.log
        suffix: .yyyy-MM-dd
        named-formatter: LOG_FORMATTER
        level: INFO

    ここでは、FILE という名前の新しいハンドラーが作成され、INFO レベル以上のロギングイベントが作成されます。ターゲット ディレクトリーにログインし、各ログファイルの名前は MY_APP_NAME.log に接尾辞 .yyyy-MM-dd が付けられます。Thorntail は接尾辞からのログローテーションの期間を自動的に解析するため、java.text.SimpleDateFormat クラスと互換性のある形式を使用するようにしてください。

  4. ルートロガーの設定

    デフォルトでは、ルートロガーは CONSOLE ハンドラーのみを使用するように設定されています。logging の下に、使用するハンドラーが含まれる root-logger セクションを追加します。

    root-logger:
      handlers:
      - CONSOLE
      - FILE

    ここでは、前の手順の FILE ハンドラーがデフォルトのコンソールハンドラーとともに使用されます。

以下は、完全なロギング設定セクションです。

YAML 設定プロファイルの logging セクション

thorntail:
  logging:
    pattern-formatters:
      LOG_FORMATTER:
        pattern: "CUSTOM LOG FORMAT %p [%c] %s%e%n"
    periodic-rotating-file-handlers:
      FILE:
        file:
          path: path/to/your/file.log
        suffix: .yyyy-MM-dd
        named-formatter: LOG_FORMATTER
    root-logger:
      handlers:
      - CONSOLE
      - FILE