Class FailureLogFormatter

java.lang.Object
nablarch.core.log.app.FailureLogFormatter
Direct Known Subclasses:
FailureJsonLogFormatter

@Published(tag="architect") public class FailureLogFormatter extends Object
障害通知ログと障害解析ログのメッセージをフォーマットするクラス。
Author:
Kiyohito Itoh
  • Field Details

  • Constructor Details

    • FailureLogFormatter

      public FailureLogFormatter()
      フォーマット済みのログ出力項目を初期化する。
  • Method Details

    • initialize

      protected void initialize()
      初期化
    • initializeFailureCodes

      protected void initializeFailureCodes(Map<String,String> props)
      障害コードの初期化
      Parameters:
      props - 各種ログ出力の設定情報
    • initializeMessage

      protected void initializeMessage(Map<String,String> props)
      メッセージの初期化
      Parameters:
      props - 各種ログ出力の設定情報
    • initializeFormat

      protected void initializeFormat(Map<String,String> props)
      フォーマットの初期化
      Parameters:
      props - 各種ログ出力の設定情報
    • getContactList

      protected List<Map.Entry<String,String>> getContactList(Map<String,String> props)
      連絡先を取得する。 プロパティファイルのキー名の長さで降順にソートして返す。
      Parameters:
      props - 各種ログ出力の設定情報
      Returns:
      連絡先
    • getAppFailureCodes

      protected Map<String,String> getAppFailureCodes(Map<String,String> props)
      アプリケーション用の障害コード変換情報を取得する。
      Parameters:
      props - 各種ログの設定情報
      Returns:
      アプリケーション用の障害コード変換情報
    • getFwFailureCodes

      protected List<Map.Entry<String,String>> getFwFailureCodes(Map<String,String> props)
      フレームワーク用の障害コード変換情報を取得する。 プロパティファイルのキー名の長さで降順にソートして返す。
      Parameters:
      props - 各種ログの設定情報
      Returns:
      フレームワーク用の障害コード変換情報
    • getDefaultFailureCode

      protected String getDefaultFailureCode(Map<String,String> props)
      デフォルトの障害コードを取得する。
      Parameters:
      props - 各種ログの設定情報
      Returns:
      デフォルトの障害コード
    • getDefaultMessage

      protected String getDefaultMessage(Map<String,String> props)
      デフォルトのメッセージを取得する。
      Parameters:
      props - 各種ログの設定情報
      Returns:
      デフォルトのメッセージ
    • getNotificationFormat

      protected String getNotificationFormat(Map<String,String> props)
      障害通知ログのフォーマットを取得する。
      Parameters:
      props - 各種ログの設定情報
      Returns:
      障害通知ログのフォーマット
    • getAnalysisFormat

      protected String getAnalysisFormat(Map<String,String> props)
      障害解析ログのフォーマットを取得する。
      Parameters:
      props - 各種ログの設定情報
      Returns:
      障害解析ログのフォーマット
    • getProps

      protected Map<String,String> getProps(Map<String,String> props, String key, String defaultFilePath)
      プロパティを取得する。
      Parameters:
      props - 各種ログの設定情報
      key - プロパティのファイルパスを各種ログの設定情報から取得する際に使用するキー
      defaultFilePath - デフォルトのファイルパス
      Returns:
      プロパティ
    • getLogItems

      フォーマット対象のログ出力項目を取得する。

      デフォルトで下記のプレースホルダを設定したログ出力項目を返す。

         $failureCode$: 障害コード
         $messageId$: 障害コード(旧メッセージID。下位互換性のため)
         $message$: メッセージ
         $data$: 処理対象データ
         $contact$: 連絡先
       
      Parameters:
      props - 各種ログの設定情報
      Returns:
      フォーマット対象のログ出力項目
    • formatNotificationMessage

      public String formatNotificationMessage(Throwable error, Object data, String failureCode, Object[] messageOptions)
      障害通知ログのメッセージをフォーマットする。
       フォーマット対象の出力項目を下記に示す。
       障害コード
       障害コードから取得したメッセージ
       派生元実行時ID
       
      Parameters:
      error - エラー情報
      data - 処理対象データ
      failureCode - 障害コード
      messageOptions - 障害コードからメッセージを取得する際に使用するオプション情報
      Returns:
      フォーマット済みのメッセージ
    • formatAnalysisMessage

      public String formatAnalysisMessage(Throwable error, Object data, String failureCode, Object[] messageOptions)
      障害解析ログのメッセージをフォーマットする。
       フォーマット対象の出力項目を下記に示す。
       障害コード
       障害コードから取得したメッセージ
       派生元実行時ID
       
      Parameters:
      error - エラー情報
      data - 処理対象データ
      failureCode - 障害コード
      messageOptions - 障害コードからメッセージを取得する際に使用するオプション情報
      Returns:
      フォーマット済みのメッセージ
    • format

      protected String format(LogItem<FailureLogFormatter.FailureLogContext>[] formattedLogItems, Throwable error, Object data, String failureCode, Object[] messageOptions)
      指定されたフォーマット済みのログ出力項目を使用してメッセージをフォーマットする。
       フォーマット対象の出力項目を下記に示す。
       障害コード
       障害コードから取得したメッセージ
       派生元実行時ID
       
      Parameters:
      formattedLogItems - フォーマット済みのログ出力項目
      error - エラー情報
      data - 処理対象データ
      failureCode - 障害コード
      messageOptions - 障害コードからメッセージを取得する際に使用するオプション情報
      Returns:
      フォーマット後のメッセージ
    • getMessage

      protected String getMessage(String failureCode, Object[] options, Throwable error)
      障害コードからメッセージを取得する。
       障害コードがデフォルトの障害コードの場合は、デフォルトのメッセージを返す。
       デフォルトのメッセージが指定されていない場合はブランクとなる。
       
       メッセージ取得では、指定されたメッセージの言語を使用する。
       メッセージの言語が指定されていない場合は、ThreadContext.getLanguage()を使用する。
       
       メッセージ取得で例外が発生した場合は、下記の固定メッセージを返す。
       
       "failed to get the message to output the failure log. failureCode = [障害コード]"
       
      Parameters:
      failureCode - 障害コード
      options - 障害コードからメッセージを取得する際に使用するオプション情報
      error - エラー情報
      Returns:
      メッセージ
      See Also:
    • getFailureCode

      protected String getFailureCode(String failureCode, Throwable error)
      ログ出力に使用する障害コードを取得する。
      Parameters:
      failureCode - 出力依頼時に指定された障害コード
      error - エラー情報
      Returns:
      ログ出力に使用する障害コード
    • getFrameworkFailureCode

      protected String getFrameworkFailureCode(Throwable error)
      フレームワーク用の障害コード変換情報から障害コードを取得する。
       下記の場合はデフォルトの障害コードを返す。
       ・エラー情報のスタックトレースのルート要素がフレームワークでない場合
       ・フレームワーク用の障害コード変換情報から障害コードを取得できない場合
       
      Parameters:
      error - エラー情報
      Returns:
      フレームワーク用の障害コード
    • getRootExceptionPoint

      protected StackTraceElement getRootExceptionPoint(Throwable error)
      スタックトレースからルート要素を取得する。
      Parameters:
      error - エラー情報
      Returns:
      スタックトレースのルート要素。スタックトレースがない場合はnull