ログ出力機能の全体を取りまとめるクラス。
クラスローダ毎に設定で指定された
LoggerFactory
の生成、保持を行う。
ログ出力機能の実装に依存する初期処理、終了処理、
Logger
の生成は
LoggerFactory
に委譲する。
クラスローダ毎に
LoggerFactory
を保持するのは、クラスローダ階層により生じる問題に対応するためである。
使用する
LoggerFactory
は、プロパティファイルに設定する。
プロパティファイルのパスは、システムプロパティを使用して、”nablarch.log.filePath”をキーにファイルパスを指定する。
このファイルパスは、クラスパスとファイルシステム上のパスのどちらを指定しても良い。
ファイルパスの指定方法は、
nablarch.core.util.FileUtil#getResource(String)
を参照すること。
システムプロパティを指定しなかった場合は、クラスパス直下のlog.propertiesを使用する。
プロパティファイルが存在しない場合は、例外を送出する。
ログの出力先によってはリソースの確保と解放が必要となるため、本クラスは初期処理と終了処理を行う。
初期処理は、初回の
Logger
の取得が行われるタイミングで本クラスが内部的に実行する。
終了処理は、フレームワーク側で実行するタイミングを判断できないので、
ログの出力要求を行うアプリケーション毎にアプリケーションの終了時に
#terminate()
メソッドを呼び出すこと。
アプリケーションの終了時とは、例えばWebアプリケーションの場合であれば、
ServletContextListener#contextDestroyedメソッドが呼ばれるタイミングを想定している。