public class CustomizableTraceInterceptor extends AbstractTraceInterceptor
MethodInterceptor
実装。トレースメッセージはメソッドの入り口で書き込まれ、メソッドの呼び出しがメソッドの出口で成功した場合に書き込まれます。呼び出しによって例外が発生した場合は、例外メッセージが書き込まれます。これらのトレースメッセージの内容は完全にカスタマイズ可能で、特別なプレースホルダーを使用して、ランタイム情報をログメッセージに含めることができます。使用可能なプレースホルダーは次のとおりです。
$[methodName]
- 呼び出されるメソッドの名前に置き換えられます $[targetClassName]
- 呼び出しのターゲットであるクラスの名前に置き換えられます $[targetClassShortName]
- 呼び出しのターゲットであるクラスの短い名前に置き換えられます $[returnValue]
- 呼び出しによって返された値で置き換えられます $[argumentTypes]
- メソッド引数の短いクラス名のカンマ区切りのリストで置き換えられます $[arguments]
- メソッド引数の String
表現のコンマ区切りリストで置き換えられます $[exception]
- 呼び出し中に発生した Throwable
の String
表現に置き換えられます $[invocationTime]
- メソッドの呼び出しにかかった時間(ミリ秒)に置き換えられます どのメッセージでどのプレースホルダーを使用できるかに制限があります。有効なプレースホルダーの詳細については、個々のメッセージプロパティを参照してください。
setEnterMessage(java.lang.String)
, setExitMessage(java.lang.String)
, setExceptionMessage(java.lang.String)
, SimpleTraceInterceptor
, 直列化された形式 修飾子と型 | フィールドと説明 |
---|---|
static java.lang.String | PLACEHOLDER_ARGUMENT_TYPES $[argumentTypes] プレースホルダー。 |
static java.lang.String | PLACEHOLDER_ARGUMENTS $[arguments] プレースホルダー。 |
static java.lang.String | PLACEHOLDER_EXCEPTION $[exception] プレースホルダー。 |
static java.lang.String | PLACEHOLDER_INVOCATION_TIME $[invocationTime] プレースホルダー。 |
static java.lang.String | PLACEHOLDER_METHOD_NAME $[methodName] プレースホルダー。 |
static java.lang.String | PLACEHOLDER_RETURN_VALUE $[returnValue] プレースホルダー。 |
static java.lang.String | PLACEHOLDER_TARGET_CLASS_NAME $[targetClassName] プレースホルダー。 |
static java.lang.String | PLACEHOLDER_TARGET_CLASS_SHORT_NAME $[targetClassShortName] プレースホルダー。 |
defaultLogger
コンストラクターと説明 |
---|
CustomizableTraceInterceptor() |
修飾子と型 | メソッドと説明 |
---|---|
protected java.lang.Object | invokeUnderTrace(MethodInvocation invocation, Log logger) enterMessage の値に基づいて、呼び出しの前にログメッセージを書き込みます。 |
protected java.lang.String | replacePlaceholders(java.lang.String message, MethodInvocation methodInvocation, java.lang.Object returnValue, java.lang.Throwable throwable, long invocationTime) 指定されたメッセージのプレースホルダーを、指定された値、指定された値から派生した値に置き換えます。 |
void | setEnterMessage(java.lang.String enterMessage) メソッドエントリログメッセージに使用するテンプレートを設定します。 |
void | setExceptionMessage(java.lang.String exceptionMessage) メソッド例外ログメッセージに使用するテンプレートを設定します。 |
void | setExitMessage(java.lang.String exitMessage) メソッド出口ログメッセージに使用するテンプレートを設定します。 |
getClassForLogging, getLoggerForInvocation, invoke, isInterceptorEnabled, isLogEnabled, setHideProxyClassNames, setLogExceptionStackTrace, setLoggerName, setUseDynamicLogger, writeToLog, writeToLog
public static final java.lang.String PLACEHOLDER_METHOD_NAME
$[methodName]
プレースホルダー。呼び出されるメソッドの名前に置き換えられます。public static final java.lang.String PLACEHOLDER_TARGET_CLASS_NAME
$[targetClassName]
プレースホルダー。メソッド呼び出しターゲットの Class
の完全修飾名に置き換えられます。public static final java.lang.String PLACEHOLDER_TARGET_CLASS_SHORT_NAME
$[targetClassShortName]
プレースホルダー。メソッド呼び出しターゲットの Class
の短い名前に置き換えられます。public static final java.lang.String PLACEHOLDER_RETURN_VALUE
$[returnValue]
プレースホルダー。メソッド呼び出しによって返された値の String
表現に置き換えられます。public static final java.lang.String PLACEHOLDER_ARGUMENT_TYPES
$[argumentTypes]
プレースホルダー。メソッド呼び出しの引数型のコンマ区切りリストで置き換えられます。引数の型は短いクラス名として記述されます。public static final java.lang.String PLACEHOLDER_ARGUMENTS
$[arguments]
プレースホルダー。メソッド呼び出しの引数値のコンマ区切りリストで置き換えられます。各引数型の toString()
メソッドに依存します。public static final java.lang.String PLACEHOLDER_EXCEPTION
$[exception]
プレースホルダー。メソッドの呼び出し中に発生した Throwable
の String
表現に置き換えられます。public static final java.lang.String PLACEHOLDER_INVOCATION_TIME
$[invocationTime]
プレースホルダー。呼び出しにかかった時間(ミリ秒単位)に置き換えられます。public void setEnterMessage(java.lang.String enterMessage) throws java.lang.IllegalArgumentException
$[targetClassName]
$[targetClassShortName]
$[argumentTypes]
$[arguments]
java.lang.IllegalArgumentException
public void setExitMessage(java.lang.String exitMessage)
$[targetClassName]
$[targetClassShortName]
$[argumentTypes]
$[arguments]
$[returnValue]
$[invocationTime]
public void setExceptionMessage(java.lang.String exceptionMessage)
$[targetClassName]
$[targetClassShortName]
$[argumentTypes]
$[arguments]
$[exception]
protected java.lang.Object invokeUnderTrace(MethodInvocation invocation, Log logger) throws java.lang.Throwable
enterMessage
の値に基づいて、呼び出し前にログメッセージを書き込みます。呼び出しが成功すると、終了時にログメッセージが値 exitMessage
に基づいて書き込まれます。呼び出し中に例外が発生した場合、exceptionMessage
の値に基づいてメッセージが書き込まれます。AbstractTraceInterceptor
の invokeUnderTrace
logger
- トレースメッセージを書き込む Log
MethodInvocation.proceed()
の呼び出しの結果 java.lang.Throwable
- MethodInvocation.proceed()
の呼び出しでエラーが発生した場合 setEnterMessage(java.lang.String)
, setExitMessage(java.lang.String)
, setExceptionMessage(java.lang.String)
protected java.lang.String replacePlaceholders(java.lang.String message, MethodInvocation methodInvocation, @Nullable java.lang.Object returnValue, @Nullable java.lang.Throwable throwable, long invocationTime)
message
- 置き換えられるプレースホルダーを含むメッセージテンプレート methodInvocation
- ログに記録される MethodInvocation
$[exception]
および $[returnValue]
を除くすべてのプレースホルダーの値を導出するために使用されます。returnValue
- 呼び出しによって返される値。$[returnValue]
プレースホルダーを置き換えるために使用されます。null
の場合があります。throwable
- 呼び出し中に発生した Throwable
。Throwable.toString()
の値は、$[exception]
プレースホルダーに置き換えられます。null
の場合があります。invocationTime
- $[invocationTime]
プレースホルダーの代わりに書き込む値