Package nablarch.core.log.basic
Class FileSizeRotatePolicy
java.lang.Object
nablarch.core.log.basic.FileSizeRotatePolicy
- All Implemented Interfaces:
RotatePolicy
ファイルサイズによるログのローテーションを行うクラス。
設定したファイルの最大サイズを超える場合にローテーションを行う。 ファイルの最大サイズが指定されていない場合は、ローテーションしない。
設定したファイルの最大サイズを超える場合にローテーションを行う。 ファイルの最大サイズが指定されていない場合は、ローテーションしない。
プロパティファイルの記述ルールを下記に示す。
- maxFileSize
- 書き込み先ファイルの最大サイズ。オプション。
単位はキロバイト。1000バイトを1キロバイトと換算する。
指定値が解析可能な整数値(Long.parseLong)でない場合は自動切替なし。
指定値が0以下の場合は自動切替なし。
ローテーション後のログファイル名は、 <ログファイルパス>.yyyyMMddHHmmssSSS.old となる。 yyyyMMddHHmmssSSSはローテーション実施時刻。
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionローテーション先のファイル名を決定する。ログファイル読み込み時に出力する、ローテーションの設定情報を返す。void
initialize
(ObjectSettings settings) 初期処理を行う。boolean
needsRotate
(String message, Charset charset) ローテーションが必要かの判定を行う。void
onOpenFile
(File file) ログファイル読み込み時に発生するイベント。
ファイルサイズによるローテーションなどを独自で実装したい場合に使用する。void
ログファイル書き込み時に発生するイベント。
ファイルサイズによるローテーションなどを独自で実装したい場合に使用する。void
ローテーションを行う。
-
Constructor Details
-
FileSizeRotatePolicy
public FileSizeRotatePolicy()
-
-
Method Details
-
initialize
初期処理を行う。- Specified by:
initialize
in interfaceRotatePolicy
- Parameters:
settings
- LogWriterの設定
-
rotate
ローテーションを行う。- Specified by:
rotate
in interfaceRotatePolicy
- Parameters:
rotatedFilePath
- ローテーション先のファイルパス- Throws:
IllegalStateException
- ログファイルのリネームができない場合
-
needsRotate
ローテーションが必要かの判定を行う。
設定したファイルの最大サイズを超える場合にtrueを返す。 ファイルの最大サイズが指定されていない場合はfalseを返す。- Specified by:
needsRotate
in interfaceRotatePolicy
- Parameters:
message
- ログファイルに書き込まれるメッセージcharset
- 書き込み時に使用する文字エンコーディング- Returns:
- ローテーションが必要な場合はtrue
-
decideRotatedFilePath
ローテーション先のファイル名を決定する。 古いログファイル名は、 <ログファイルパス>.yyyyMMddHHmmssSSS.old のフォーマットで出力される。 日時には、ローテーション実施時刻が出力される。- Specified by:
decideRotatedFilePath
in interfaceRotatePolicy
- Returns:
- ローテーション先のファイル名
-
onOpenFile
ログファイル読み込み時に発生するイベント。
ファイルサイズによるローテーションなどを独自で実装したい場合に使用する。
読み込んだファイルサイズを現在のファイルサイズとして、インスタンス変数に保持する。- Specified by:
onOpenFile
in interfaceRotatePolicy
- Parameters:
file
- 読み込まれたファイル
-
onWrite
ログファイル書き込み時に発生するイベント。
ファイルサイズによるローテーションなどを独自で実装したい場合に使用する。
ファイルサイズに書き込むメッセージサイズを足すことで、現在のファイルサイズを更新する。- Specified by:
onWrite
in interfaceRotatePolicy
- Parameters:
message
- ログファイルに書き込まれるメッセージcharset
- 書き込み時に使用する文字エンコーディング
-
getSettings
ログファイル読み込み時に出力する、ローテーションの設定情報を返す。
設定情報のフォーマットを下記に示す。
FILE AUTO CHANGE = [<ログファイルを自動で切り替えるか否か。>] MAX FILE SIZE = [<書き込み先ファイルの最大サイズ>] CURRENT FILE SIZE = [<書き込み先ファイルの現在のサイズ>]
- Specified by:
getSettings
in interfaceRotatePolicy
- Returns:
- 設定情報
- See Also:
-