Package nablarch.core.log.basic
Class BasicLoggerFactory
java.lang.Object
nablarch.core.log.basic.BasicLoggerFactory
- All Implemented Interfaces:
LoggerFactory
LoggerFactory
の基本実装クラス。フレームワーク実装の設定は、
LoggerManager
が読み込むプロパティファイルに記述する。プロパティファイルの設定は、システムプロパティを使用して同じキー名に値を指定することで上書きすることができる。
プロパティファイルの記述ルールを下記に示す。
- writerNames
- 使用する全ての
LogWriter
の名称。必須。
複数指定する場合はカンマ区切り。
「”writer.” + <ここで指定したLogWriter
の名称>」をキーのプレフィックスにして、LogWriter
毎の設定を行う。 - writer.<
LogWriter
の名称>.className LogWriter
のクラス名。必須。
LogWriter
を実装したクラスのFQCNを指定する。- writer.<
LogWriter
の名称>.<プロパティ名> LogWriter
毎のプロパティに設定する値。
設定内容は、使用するLogWriter
のJavadocを参照すること。- availableLoggersNamesOrder
- 使用する全ての
Logger
設定の名称。必須。
複数指定する場合はカンマ区切り。
「”loggers.” + <ここで指定されたLogger
設定の名称>」をキーのプレフィックスに使用して、Logger
設定毎の設定を行う。 - loggers.<
Logger
設定の名称>.nameRegex Logger
名とのマッチングに使用する正規表現。必須。
正規表現は、Logger
設定の対象となるLogger
を絞り込むために使用する。
Logger
の取得時に指定されたLogger
名 (つまりLoggerManager#get
メソッドの引数に指定されたLogger
名)に対してマッチングを行う。- logger.<
Logger
設定の名称>.level LogLevel
の名称。必須。
LogLevel
の名称を指定する。
ここで指定したレベル以上のログを全て出力する。- logger.<
Logger
設定の名称>.writerNames LogWriter
の名称。必須。
複数指定する場合はカンマ区切り。
ここで指定した全てのLogWriter
に対してログの書き込みを行う。
Logger
の取得では、ログ出力を行うクラスが指定したLogger
名に対して、
ここに記述した順番でLogger
のマッチングを行い、最初にマッチしたLogger
を返す。そのため、availableLoggersNamesOrderプロパティは、より限定的な正規表現を指定した
Logger
から順に記述すること。初期処理完了後に、各
LogWriter
に対して、出力されるログレベルの書き込みを行う。初期処理完了後の出力例を下記に示す。
2010-09-14 15:26:32.345 nablarch.core.log.basic.BasicLoggerFactory INFO [main] user_id[null] request_id[null] initialized. NAME REGEX = [MONITOR] LEVEL = [ERROR] NAME REGEX = [tis\.w8\.web\.handler\.HttpAccessLogHandler] LEVEL = [INFO] NAME REGEX = [.*] LEVEL = [WARN]
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
initialize
(LogSettings settings) 初期処理を行う。
ログの出力先に応じたリソースの確保などを行う。void
終了処理を行う。
ログの出力先に応じて確保しているリソースの解放などを行う。
-
Constructor Details
-
BasicLoggerFactory
public BasicLoggerFactory()
-
-
Method Details
-
initialize
初期処理を行う。
ログの出力先に応じたリソースの確保などを行う。
ログ出力の設定に応じて、インスタンスの生成と初期化を行う。
設定に不備がある場合はIllegalArgumentException
をスローする。
初期処理完了後に、各LogWriter
に対して、出力されるログレベルの書き込みを行う。- Specified by:
initialize
in interfaceLoggerFactory
- Parameters:
settings
- ログ出力の設定
-
terminate
public void terminate()終了処理を行う。
ログの出力先に応じて確保しているリソースの解放などを行う。
全てのLogWriter
の終了処理を行う。
LogWriter
の終了処理で例外が発生した場合は、発生した例外をキャッチし、標準エラーにスタックトレースを出力する。
発生した例外の再スローは行わない。- Specified by:
terminate
in interfaceLoggerFactory
-
get
Logger
を取得する。
Logger
名に対応するLogger
が見つからない場合は、何も処理しないLogger
を返し、 nullを返したり、例外を送出しないこと。
availableLoggersNamesOrderプロパティで指定された順番にLogger
名のマッチングを行い、最初にマッチしたLogger
を返す。
マッチするLogger
が見つからない場合は、何もしないLogger
を返す。- Specified by:
get
in interfaceLoggerFactory
- Parameters:
name
-Logger
名- Returns:
Logger
名に対応するLogger
-