Class FileSizeRotatePolicy

java.lang.Object
nablarch.core.log.basic.FileSizeRotatePolicy
All Implemented Interfaces:
RotatePolicy

public class FileSizeRotatePolicy extends Object implements RotatePolicy
ファイルサイズによるログのローテーションを行うクラス。
設定したファイルの最大サイズを超える場合にローテーションを行う。 ファイルの最大サイズが指定されていない場合は、ローテーションしない。

プロパティファイルの記述ルールを下記に示す。

maxFileSize
書き込み先ファイルの最大サイズ。オプション。
単位はキロバイト。1000バイトを1キロバイトと換算する。
指定値が解析可能な整数値(Long.parseLong)でない場合は自動切替なし。
指定値が0以下の場合は自動切替なし。

ローテーション後のログファイル名は、 <ログファイルパス>.yyyyMMddHHmmssSSS.old となる。 yyyyMMddHHmmssSSSはローテーション実施時刻。

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    ローテーション先のファイル名を決定する。
    ログファイル読み込み時に出力する、ローテーションの設定情報を返す。
    void
    初期処理を行う。
    boolean
    needsRotate(String message, Charset charset)
    ローテーションが必要かの判定を行う。
    void
    ログファイル読み込み時に発生するイベント。
    ファイルサイズによるローテーションなどを独自で実装したい場合に使用する。
    void
    onWrite(String message, Charset charset)
    ログファイル書き込み時に発生するイベント。
    ファイルサイズによるローテーションなどを独自で実装したい場合に使用する。
    void
    rotate(String rotatedFilePath)
    ローテーションを行う。

    Methods inherited from class java.lang.Object

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

    • FileSizeRotatePolicy

      public FileSizeRotatePolicy()
  • Method Details

    • initialize

      public void initialize(ObjectSettings settings)
      初期処理を行う。
      Specified by:
      initialize in interface RotatePolicy
      Parameters:
      settings - LogWriterの設定
    • rotate

      public void rotate(String rotatedFilePath)
      ローテーションを行う。
      Specified by:
      rotate in interface RotatePolicy
      Parameters:
      rotatedFilePath - ローテーション先のファイルパス
      Throws:
      IllegalStateException - ログファイルのリネームができない場合
    • needsRotate

      public boolean needsRotate(String message, Charset charset)
      ローテーションが必要かの判定を行う。
      設定したファイルの最大サイズを超える場合にtrueを返す。 ファイルの最大サイズが指定されていない場合はfalseを返す。
      Specified by:
      needsRotate in interface RotatePolicy
      Parameters:
      message - ログファイルに書き込まれるメッセージ
      charset - 書き込み時に使用する文字エンコーディング
      Returns:
      ローテーションが必要な場合はtrue
    • decideRotatedFilePath

      public String decideRotatedFilePath()
      ローテーション先のファイル名を決定する。 古いログファイル名は、 <ログファイルパス>.yyyyMMddHHmmssSSS.old のフォーマットで出力される。 日時には、ローテーション実施時刻が出力される。
      Specified by:
      decideRotatedFilePath in interface RotatePolicy
      Returns:
      ローテーション先のファイル名
    • onOpenFile

      public void onOpenFile(File file)
      ログファイル読み込み時に発生するイベント。
      ファイルサイズによるローテーションなどを独自で実装したい場合に使用する。
      読み込んだファイルサイズを現在のファイルサイズとして、インスタンス変数に保持する。
      Specified by:
      onOpenFile in interface RotatePolicy
      Parameters:
      file - 読み込まれたファイル
    • onWrite

      public void onWrite(String message, Charset charset)
      ログファイル書き込み時に発生するイベント。
      ファイルサイズによるローテーションなどを独自で実装したい場合に使用する。
      ファイルサイズに書き込むメッセージサイズを足すことで、現在のファイルサイズを更新する。
      Specified by:
      onWrite in interface RotatePolicy
      Parameters:
      message - ログファイルに書き込まれるメッセージ
      charset - 書き込み時に使用する文字エンコーディング
    • getSettings

      public String getSettings()
      ログファイル読み込み時に出力する、ローテーションの設定情報を返す。
      設定情報のフォーマットを下記に示す。
       
       FILE AUTO CHANGE    = [<ログファイルを自動で切り替えるか否か。>]
       MAX FILE SIZE       = [<書き込み先ファイルの最大サイズ>]
       CURRENT FILE SIZE   = [<書き込み先ファイルの現在のサイズ>]
       
       
      Specified by:
      getSettings in interface RotatePolicy
      Returns:
      設定情報
      See Also: