Class BasicLoggerFactory

java.lang.Object
nablarch.core.log.basic.BasicLoggerFactory
All Implemented Interfaces:
LoggerFactory

public class BasicLoggerFactory extends Object implements 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に対してログの書き込みを行う。
availableLoggersNamesOrderプロパティは、記述順に意味があるので注意すること。
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]
 
Author:
Kiyohito Itoh
  • Constructor Details

    • BasicLoggerFactory

      public BasicLoggerFactory()
  • Method Details

    • initialize

      public void initialize(LogSettings settings)
      初期処理を行う。

      ログの出力先に応じたリソースの確保などを行う。

      ログ出力の設定に応じて、インスタンスの生成と初期化を行う。
      設定に不備がある場合はIllegalArgumentExceptionをスローする。

      初期処理完了後に、各LogWriterに対して、出力されるログレベルの書き込みを行う。
      Specified by:
      initialize in interface LoggerFactory
      Parameters:
      settings - ログ出力の設定
    • terminate

      public void terminate()
      終了処理を行う。

      ログの出力先に応じて確保しているリソースの解放などを行う。

      全てのLogWriterの終了処理を行う。
      LogWriterの終了処理で例外が発生した場合は、発生した例外をキャッチし、標準エラーにスタックトレースを出力する。
      発生した例外の再スローは行わない。
      Specified by:
      terminate in interface LoggerFactory
    • get

      public Logger get(String name)
      Loggerを取得する。

      Logger名に対応するLoggerが見つからない場合は、何も処理しないLoggerを返し、 nullを返したり、例外を送出しないこと。

      availableLoggersNamesOrderプロパティで指定された順番にLogger名のマッチングを行い、最初にマッチしたLoggerを返す。
      マッチするLoggerが見つからない場合は、何もしないLoggerを返す。
      Specified by:
      get in interface LoggerFactory
      Parameters:
      name - Logger
      Returns:
      Logger名に対応するLogger