Class BasicLogFormatter

java.lang.Object
nablarch.core.log.basic.BasicLogFormatter
All Implemented Interfaces:
LogFormatter

@Published(tag="architect") public class BasicLogFormatter extends Object implements LogFormatter
LogFormatterの基本実装クラス。

BasicLogFormatterクラスの特徴を下記に示す。
  • ログに最低限必要な情報(日時、リクエストID、ユーザIDなど)を出力できる。
  • アプリケーションを起動しているプロセスを識別するために、システムプロパティで指定されたプロセス名をログに出力できる。
  • オブジェクトを指定してフィールド情報を出力できる。
  • 例外オブジェクトを指定してスタックトレースを出力できる。
  • フォーマットを設定のみで変更することができる。
BasicLogFormatterは、プレースホルダを使用してフォーマットを指定する。 フォーマットに指定可能なプレースホルダの一覧を下記に示す。
 $date$
     このログ出力を要求した時点の日時。
 $logLevel$
     このログ出力のログレベル。
     デフォルトはLogLevel列挙型の名称を文言に使用する。
     文言はプロパティファイルの設定で変更することができる。
 $loggerName$
     このログ出力が対応するロガー設定の名称。
     このログ出力を呼び出した箇所に関わらず、プロパティファイル(log.properties)に記載したロガー名となる。
 $runtimeLoggerName$
     実行時に、LoggerManagerからロガー取得に指定した名称。
     このログ出力を呼び出した際にLoggerManager.get(Class)で指定したクラス名
     またはLoggerManager.get(String)で指定した名称となる。
 $bootProcess$
     起動プロセスを識別する名前。
     起動プロセスは、システムプロパティ"nablarch.bootProcess"から取得する。
     指定がない場合はブランク。
 $processingSystem$
     処理方式を識別する名前。
     処理方式は、プロパティファイル("nablarch.processingSystem")から取得する。
     指定がない場合はブランク。
 $requestId$
     このログ出力を要求した時点のリクエストID。
 $executionId$
     このログ出力を要求した時点の実行時ID
 $userId$
     このログ出力を要求した時点のログインユーザのユーザID。
 $message$
     このログ出力のメッセージ。
     指定がない場合はブランク。
 $information$
     オプション情報に指定されたオブジェクトのフィールド情報。
     オブジェクトのフィールドに対して、Object#toString()メソッドを実行した結果を表示する。
     オプション情報に指定されたオブジェクトが基本データ型のラッパクラス、CharSequenceインタフェース、
     Dateクラスの場合は、オブジェクトに対してObject#toString()メソッドを実行した結果のみを表示する。
     オブジェクト情報の指定がない場合は表示しない。
 $stackTrace$
     エラー情報に指定された例外オブジェクトのスタックトレース。
     エラー情報の指定がない場合は表示しない。
 
フォーマット指定が無い場合に使用するフォーマットを下記に示す。
$date$ -$logLevel$- $loggerName$ [$executionId$] boot_proc = [$bootProcess$] proc_sys = [$processingSystem$] req_id = [$requestId$] usr_id = [$userId$] $message$$information$$stackTrace$

プロパティファイルの記述ルールを下記に示す。
writer.<LogWriterの名称>.formatter.label.<LogLevelの名称の小文字>
LogLevelに使用するラベル。オプション。
指定しなければLogLevelの名称を使用する。
writer.<LogWriterの名称>.formatter.format
フォーマット。オプション。
writer.<LogWriterの名称>.formatter.datePattern
日時のフォーマットに使用するパターン。オプション。
指定しなければはyyyy-MM-dd HH:mm:ss.SSSを使用する。
Author:
Kiyohito Itoh
  • Constructor Details

    • BasicLogFormatter

      public BasicLogFormatter()
  • Method Details

    • initialize

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

      フォーマットとログレベルに使用するラベルを初期化する。
      Specified by:
      initialize in interface LogFormatter
      Parameters:
      settings - LogFormatterの設定
    • getLogItems

      protected Map<String,LogItem<LogContext>> getLogItems(ObjectSettings settings)
      フォーマット対象のログ出力項目を取得する。
      Parameters:
      settings - LogFormatterの設定
      Returns:
      フォーマット対象のログ出力項目
    • getDateFormat

      protected DateFormat getDateFormat(ObjectSettings settings)
      日時フォーマットを取得する。
      Parameters:
      settings - LogFormatterの設定
      Returns:
      日時フォーマット
    • getLogLevelLabelProvider

      protected LogLevelLabelProvider getLogLevelLabelProvider(ObjectSettings settings)
      LogLevelLabelProviderを取得する。
      Parameters:
      settings - LogFormatterの設定
      Returns:
      LogLevelLabelProvider
    • getFormat

      protected String getFormat(ObjectSettings settings)
      フォーマットを取得する。
      Parameters:
      settings - LogFormatterの設定
      Returns:
      フォーマット
    • format

      public String format(LogContext context)
      ログのフォーマットを行う。
      Specified by:
      format in interface LogFormatter
      Parameters:
      context - LogContext
      Returns:
      フォーマット済みのログ