Class JsonLogFormatter

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

@Published(tag="architect") public class JsonLogFormatter extends Object implements LogFormatter
LogFormatterのJSON形式フォーマット実装クラス。

JsonLogFormatterは、出力項目を指定してフォーマットを指定する。 出力項目の一覧を下記に示す。
 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
     このログ出力のメッセージ。
 payload
     オプション情報に指定されたオブジェクトのフィールド情報。
     オブジェクトの型は Map<String, Object>  でなければならない。
     Mapのアイテムがルート階層に追加される。
     キーが重複した場合は、いずれか一つのみが出力される。
 stackTrace
     エラー情報に指定された例外オブジェクトのスタックトレース。
     エラー情報の指定がない場合は表示しない。
 
プロパティファイルの記述ルールを下記に示す。

writer.<LogWriterの名称>.formatter.label.<LogLevelの名称の小文字>
LogLevelに使用するラベル。オプション。
指定しなければLogLevelの名称を使用する。
writer.<LogWriterの名称>.formatter.targets
出力項目をカンマ区切りで指定する。オプション。 指定しなければ全ての出力項目が出力の対象となる。
writer.<LogWriterの名称>.formatter.datePattern
日時のフォーマットに使用するパターン。オプション。
指定しなければyyyy-MM-dd HH:mm:ss.SSSを使用する。
writer.<LogWriterの名称>.formatter.structuredMessagePrefix
各種ログで使用される組み込み処理用の接頭辞。オプション。
指定しなければ$JSON$を使用する。
Author:
Shuji Kitamura
See Also:
  • Constructor Details

    • JsonLogFormatter

      public JsonLogFormatter()
  • Method Details

    • initialize

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

      出力項目を初期化する。
      Specified by:
      initialize in interface LogFormatter
      Parameters:
      settings - LogFormatterの設定
    • createFormatErrorSupport

      protected FormatErrorSupport createFormatErrorSupport()
      フォーマットエラーを処理するクラスを生成する。
      Returns:
      フォーマットエラーを処理するクラス
    • createSerializationManager

      protected JsonSerializationManager createSerializationManager(ObjectSettings settings)
      Jsonのシリアライズに使用する管理クラスを生成する。
      Parameters:
      settings - LogFormatterの設定
      Returns:
      Jsonのシリアライズに使用する管理クラス
    • createStructuredTargets

      protected List<JsonLogObjectBuilder<LogContext>> createStructuredTargets(ObjectSettings settings)
      ログ出力項目を生成する。
      Parameters:
      settings - LogFormatterの設定
      Returns:
      ログ出力項目
    • getLogLevelLabelProvider

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

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

      protected Map<String,Object> createStructuredObject(LogContext context)
      ログコンテキストからシリアライズ用のオブジェクトを作成する。
      Parameters:
      context - ログコンテキスト
      Returns:
      シリアライズ用のオブジェクト