Class FileLogWriter

java.lang.Object
nablarch.core.log.basic.LogWriterSupport
nablarch.core.log.basic.FileLogWriter
All Implemented Interfaces:
LogWriter
Direct Known Subclasses:
SynchronousFileLogWriter

public class FileLogWriter extends LogWriterSupport
ファイルにログを書き込むクラス。

FileLogWriterクラスの特徴を下記に示す。
  • ログフォーマッタを設定で指定できる。
  • 設定されたクラスに従いログファイルのローテーションを行うことができる。
  • 初期処理と終了処理、ログファイルの切り替え時に、書き込み先のログファイルにINFOレベルでメッセージを出力する。
本クラスでは、ファイルへのログ書き込みにBufferedOutputStreamを使用する。
出力バッファのサイズは設定で変更できる。
書き込み処理では、書き込み後にすぐにフラッシュし、書き込んだ内容をファイルに反映する。

プロパティファイルの記述ルールを下記に示す。
filePath
書き込み先のファイルパス。必須。
encoding
書き込み時に使用する文字エンコーディング。オプション。
指定しなければシステムプロパティ(file.encoding)から取得した文字エンコーディング。
outputBufferSize
出力バッファのサイズ。オプション。
単位はキロバイト。1000バイトを1キロバイトと換算する。1以上を指定する。指定しなければ8KB。
rotatePolicy
ファイルローテーション実行クラスのFQCNを指定する。オプション。
RotatePolicyが実装されたクラスのFQCNを指定する。
デフォルトではFileSizeRotatePolicyが使用される。
利用するローテーション実行クラス毎に、追加でプロパティの設定が必要となる。
本クラスでは、初期処理と終了処理、ログファイルの切り替え時に、書き込み先のログファイルにINFOレベルでメッセージを出力する。
Author:
Kiyohito Itoh
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    キロバイトを算出するための係数
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected String
    設定情報を取得する。

    設定情報のフォーマットを下記に示す。

    WRITER NAME = [<LogWriterの名称>]
    WRITER CLASS = [<LogWriterのクラス名>]
    FORMATTER CLASS = [<LogFormatterのクラス名>]
    LEVEL = [<ログの出力制御の基準とするLogLevel>] FILE PATH = [<書き込み先のファイルパス>]
    ENCODING = [<書き込み時に使用する文字エンコーディング>]
    OUTPUT BUFFER SIZE = [<出力バッファのサイズ>]
    ROTATE POLICY CLASS = [<ファイルローテーション実行クラス>]

    追加でRotatePolicy.getSettings()によって得られた設定情報が出力される。
    protected void
    初期処理を行う。
    ログの出力先に応じたリソースの確保などを実装する。
    デフォルト実装では何もしない。
    protected void
    終了処理を行う。
    ログの出力先に応じて確保しているリソースの解放などを実装する。
    デフォルト実装では何もしない。
    protected void
    onWrite(String formattedMessage)
    フォーマット済みのログを出力先に書き込む。

    Methods inherited from class nablarch.core.log.basic.LogWriterSupport

    createLogFormatter, getFormatter, getName, initialize, needsToWrite, terminate, write

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • KB

      public static final int KB
      キロバイトを算出するための係数
      See Also:
  • Constructor Details

    • FileLogWriter

      public FileLogWriter()
  • Method Details

    • onInitialize

      protected void onInitialize(ObjectSettings settings)
      初期処理を行う。
      ログの出力先に応じたリソースの確保などを実装する。
      デフォルト実装では何もしない。

      プロパティファイルで指定された設定情報を取得し、ファイルへの書き込みを行う出力ストリームを初期化する。
      初期処理完了後、INFOレベルで設定情報を出力する。

      Overrides:
      onInitialize in class LogWriterSupport
      Parameters:
      settings - LogWriterの設定内容
    • getSettings

      protected String getSettings()
      設定情報を取得する。

      設定情報のフォーマットを下記に示す。

      WRITER NAME = [<LogWriterの名称>]
      WRITER CLASS = [<LogWriterのクラス名>]
      FORMATTER CLASS = [<LogFormatterのクラス名>]
      LEVEL = [<ログの出力制御の基準とするLogLevel>] FILE PATH = [<書き込み先のファイルパス>]
      ENCODING = [<書き込み時に使用する文字エンコーディング>]
      OUTPUT BUFFER SIZE = [<出力バッファのサイズ>]
      ROTATE POLICY CLASS = [<ファイルローテーション実行クラス>]

      追加でRotatePolicy.getSettings()によって得られた設定情報が出力される。
      Overrides:
      getSettings in class LogWriterSupport
      Returns:
      設定情報
      See Also:
    • onTerminate

      protected void onTerminate()
      終了処理を行う。
      ログの出力先に応じて確保しているリソースの解放などを実装する。
      デフォルト実装では何もしない。

      終了処理の前に、INFOレベルで終了メッセージを出力する。
      ファイルへの書き込みを行う出力ストリームをクローズする。
      Overrides:
      onTerminate in class LogWriterSupport
    • onWrite

      protected void onWrite(String formattedMessage)
      フォーマット済みのログを出力先に書き込む。

      設定情報に基づきログをファイルに書き込む。
      書き込み後にすぐにフラッシュし、書き込んだ内容をファイルに反映する。

      IO例外が発生した場合は、IO例外をラップしてIllegalStateExceptionを送出する。
      Specified by:
      onWrite in class LogWriterSupport
      Parameters:
      formattedMessage - フォーマット済みのログ