Package nablarch.core.log.app
Class FailureLogFormatter
java.lang.Object
nablarch.core.log.app.FailureLogFormatter
- Direct Known Subclasses:
FailureJsonLogFormatter
障害通知ログと障害解析ログのメッセージをフォーマットするクラス。
- Author:
- Kiyohito Itoh
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
連絡先を取得するクラス。static class
処理対象データを取得するクラス。static class
障害コードを取得するクラス。static class
障害通知ログと障害解析ログの出力項目を保持するクラス。static class
メッセージを取得するクラス。 -
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected String
format
(LogItem<FailureLogFormatter.FailureLogContext>[] formattedLogItems, Throwable error, Object data, String failureCode, Object[] messageOptions) 指定されたフォーマット済みのログ出力項目を使用してメッセージをフォーマットする。formatAnalysisMessage
(Throwable error, Object data, String failureCode, Object[] messageOptions) 障害解析ログのメッセージをフォーマットする。formatNotificationMessage
(Throwable error, Object data, String failureCode, Object[] messageOptions) 障害通知ログのメッセージをフォーマットする。protected String
getAnalysisFormat
(Map<String, String> props) 障害解析ログのフォーマットを取得する。getAppFailureCodes
(Map<String, String> props) アプリケーション用の障害コード変換情報を取得する。getContactList
(Map<String, String> props) 連絡先を取得する。 プロパティファイルのキー名の長さで降順にソートして返す。protected String
getDefaultFailureCode
(Map<String, String> props) デフォルトの障害コードを取得する。protected String
getDefaultMessage
(Map<String, String> props) デフォルトのメッセージを取得する。protected String
getFailureCode
(String failureCode, Throwable error) ログ出力に使用する障害コードを取得する。protected String
getFrameworkFailureCode
(Throwable error) フレームワーク用の障害コード変換情報から障害コードを取得する。getFwFailureCodes
(Map<String, String> props) フレームワーク用の障害コード変換情報を取得する。 プロパティファイルのキー名の長さで降順にソートして返す。protected Map<String,
LogItem<FailureLogFormatter.FailureLogContext>> getLogItems
(Map<String, String> props) フォーマット対象のログ出力項目を取得する。protected String
getMessage
(String failureCode, Object[] options, Throwable error) 障害コードからメッセージを取得する。protected String
getNotificationFormat
(Map<String, String> props) 障害通知ログのフォーマットを取得する。プロパティを取得する。protected StackTraceElement
getRootExceptionPoint
(Throwable error) スタックトレースからルート要素を取得する。protected void
初期化protected void
initializeFailureCodes
(Map<String, String> props) 障害コードの初期化protected void
initializeFormat
(Map<String, String> props) フォーマットの初期化protected void
initializeMessage
(Map<String, String> props) メッセージの初期化
-
Field Details
-
PROPS_PREFIX
プロパティ名のプレフィックス- See Also:
-
-
Constructor Details
-
FailureLogFormatter
public FailureLogFormatter()フォーマット済みのログ出力項目を初期化する。
-
-
Method Details
-
initialize
protected void initialize()初期化 -
initializeFailureCodes
障害コードの初期化- Parameters:
props
- 各種ログ出力の設定情報
-
initializeMessage
メッセージの初期化- Parameters:
props
- 各種ログ出力の設定情報
-
initializeFormat
フォーマットの初期化- Parameters:
props
- 各種ログ出力の設定情報
-
getContactList
連絡先を取得する。 プロパティファイルのキー名の長さで降順にソートして返す。- Parameters:
props
- 各種ログ出力の設定情報- Returns:
- 連絡先
-
getAppFailureCodes
アプリケーション用の障害コード変換情報を取得する。- Parameters:
props
- 各種ログの設定情報- Returns:
- アプリケーション用の障害コード変換情報
-
getFwFailureCodes
フレームワーク用の障害コード変換情報を取得する。 プロパティファイルのキー名の長さで降順にソートして返す。- Parameters:
props
- 各種ログの設定情報- Returns:
- フレームワーク用の障害コード変換情報
-
getDefaultFailureCode
デフォルトの障害コードを取得する。- Parameters:
props
- 各種ログの設定情報- Returns:
- デフォルトの障害コード
-
getDefaultMessage
デフォルトのメッセージを取得する。- Parameters:
props
- 各種ログの設定情報- Returns:
- デフォルトのメッセージ
-
getNotificationFormat
障害通知ログのフォーマットを取得する。- Parameters:
props
- 各種ログの設定情報- Returns:
- 障害通知ログのフォーマット
-
getAnalysisFormat
障害解析ログのフォーマットを取得する。- Parameters:
props
- 各種ログの設定情報- Returns:
- 障害解析ログのフォーマット
-
getProps
プロパティを取得する。- Parameters:
props
- 各種ログの設定情報key
- プロパティのファイルパスを各種ログの設定情報から取得する際に使用するキーdefaultFilePath
- デフォルトのファイルパス- Returns:
- プロパティ
-
getLogItems
protected Map<String,LogItem<FailureLogFormatter.FailureLogContext>> getLogItems(Map<String, String> props) フォーマット対象のログ出力項目を取得する。 デフォルトで下記のプレースホルダを設定したログ出力項目を返す。$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
障害コードからメッセージを取得する。障害コードがデフォルトの障害コードの場合は、デフォルトのメッセージを返す。 デフォルトのメッセージが指定されていない場合はブランクとなる。 メッセージ取得では、指定されたメッセージの言語を使用する。 メッセージの言語が指定されていない場合は、
ThreadContext.getLanguage()
を使用する。 メッセージ取得で例外が発生した場合は、下記の固定メッセージを返す。 "failed to get the message to output the failure log. failureCode = [障害コード]"- Parameters:
failureCode
- 障害コードoptions
- 障害コードからメッセージを取得する際に使用するオプション情報error
- エラー情報- Returns:
- メッセージ
- See Also:
-
getFailureCode
ログ出力に使用する障害コードを取得する。- Parameters:
failureCode
- 出力依頼時に指定された障害コードerror
- エラー情報- Returns:
- ログ出力に使用する障害コード
-
getFrameworkFailureCode
フレームワーク用の障害コード変換情報から障害コードを取得する。下記の場合はデフォルトの障害コードを返す。 ・エラー情報のスタックトレースのルート要素がフレームワークでない場合 ・フレームワーク用の障害コード変換情報から障害コードを取得できない場合
- Parameters:
error
- エラー情報- Returns:
- フレームワーク用の障害コード
-
getRootExceptionPoint
スタックトレースからルート要素を取得する。- Parameters:
error
- エラー情報- Returns:
- スタックトレースのルート要素。スタックトレースがない場合はnull
-