Package nablarch.core.log.basic
Class FileLogWriter
java.lang.Object
nablarch.core.log.basic.LogWriterSupport
nablarch.core.log.basic.FileLogWriter
- All Implemented Interfaces:
LogWriter
- Direct Known Subclasses:
SynchronousFileLogWriter
ファイルにログを書き込むクラス。
FileLogWriterクラスの特徴を下記に示す。
出力バッファのサイズは設定で変更できる。
書き込み処理では、書き込み後にすぐにフラッシュし、書き込んだ内容をファイルに反映する。
プロパティファイルの記述ルールを下記に示す。
FileLogWriterクラスの特徴を下記に示す。
- ログフォーマッタを設定で指定できる。
- 設定されたクラスに従いログファイルのローテーションを行うことができる。
- 初期処理と終了処理、ログファイルの切り替え時に、書き込み先のログファイルにINFOレベルでメッセージを出力する。
BufferedOutputStream
を使用する。出力バッファのサイズは設定で変更できる。
書き込み処理では、書き込み後にすぐにフラッシュし、書き込んだ内容をファイルに反映する。
プロパティファイルの記述ルールを下記に示す。
- filePath
- 書き込み先のファイルパス。必須。
- encoding
- 書き込み時に使用する文字エンコーディング。オプション。
指定しなければシステムプロパティ(file.encoding)から取得した文字エンコーディング。 - outputBufferSize
- 出力バッファのサイズ。オプション。
単位はキロバイト。1000バイトを1キロバイトと換算する。1以上を指定する。指定しなければ8KB。 - rotatePolicy
- ファイルローテーション実行クラスのFQCNを指定する。オプション。
RotatePolicy
が実装されたクラスのFQCNを指定する。
デフォルトではFileSizeRotatePolicy
が使用される。
利用するローテーション実行クラス毎に、追加でプロパティの設定が必要となる。
- Author:
- Kiyohito Itoh
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected 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
onInitialize
(ObjectSettings settings) 初期処理を行う。
ログの出力先に応じたリソースの確保などを実装する。
デフォルト実装では何もしない。protected void
終了処理を行う。
ログの出力先に応じて確保しているリソースの解放などを実装する。
デフォルト実装では何もしない。protected void
フォーマット済みのログを出力先に書き込む。Methods inherited from class nablarch.core.log.basic.LogWriterSupport
createLogFormatter, getFormatter, getName, initialize, needsToWrite, terminate, write
-
Field Details
-
KB
public static final int KBキロバイトを算出するための係数- See Also:
-
-
Constructor Details
-
FileLogWriter
public FileLogWriter()
-
-
Method Details
-
onInitialize
初期処理を行う。
ログの出力先に応じたリソースの確保などを実装する。
デフォルト実装では何もしない。 プロパティファイルで指定された設定情報を取得し、ファイルへの書き込みを行う出力ストリームを初期化する。
初期処理完了後、INFOレベルで設定情報を出力する。- Overrides:
onInitialize
in classLogWriterSupport
- Parameters:
settings
-LogWriter
の設定内容
-
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 classLogWriterSupport
- Returns:
- 設定情報
- See Also:
-
onTerminate
protected void onTerminate()終了処理を行う。
ログの出力先に応じて確保しているリソースの解放などを実装する。
デフォルト実装では何もしない。
終了処理の前に、INFOレベルで終了メッセージを出力する。
ファイルへの書き込みを行う出力ストリームをクローズする。- Overrides:
onTerminate
in classLogWriterSupport
-
onWrite
フォーマット済みのログを出力先に書き込む。
設定情報に基づきログをファイルに書き込む。
書き込み後にすぐにフラッシュし、書き込んだ内容をファイルに反映する。
IO例外が発生した場合は、IO例外をラップしてIllegalStateException
を送出する。- Specified by:
onWrite
in classLogWriterSupport
- Parameters:
formattedMessage
- フォーマット済みのログ
-