クラス CustomizableTraceInterceptor

java.lang.ObjectSE
org.springframework.aop.interceptor.AbstractTraceInterceptor
org.springframework.aop.interceptor.CustomizableTraceInterceptor
実装されたすべてのインターフェース:
SerializableSEAdviceInterceptorMethodInterceptor

public class CustomizableTraceInterceptor extends AbstractTraceInterceptor
プレースホルダーを使用して高度にカスタマイズ可能なメソッドレベルのトレースを可能にする MethodInterceptor 実装。

トレースメッセージはメソッドの入り口で書き込まれ、メソッドの呼び出しがメソッドの出口で成功した場合に書き込まれます。呼び出しによって例外が発生した場合は、例外メッセージが書き込まれます。これらのトレースメッセージの内容は完全にカスタマイズ可能で、特別なプレースホルダーを使用して、ランタイム情報をログメッセージに含めることができます。使用可能なプレースホルダーは次のとおりです。

  • $[methodName] - 呼び出されるメソッドの名前に置き換えられます
  • $[targetClassName] - 呼び出しのターゲットであるクラスの名前に置き換えられます
  • $[targetClassShortName] - 呼び出しのターゲットであるクラスの短い名前に置き換えられます
  • $[returnValue] - 呼び出しによって返された値で置き換えられます
  • $[argumentTypes] - メソッド引数の短いクラス名のカンマ区切りのリストで置き換えられます
  • $[arguments] - メソッド引数の String 表現のコンマ区切りリストで置き換えられます
  • $[exception] - 呼び出し中に発生した Throwable の String 表現に置き換えられます
  • $[invocationTime] - メソッドの呼び出しにかかった時間(ミリ秒)に置き換えられます

どのメッセージでどのプレースホルダーを使用できるかに制限があります。有効なプレースホルダーの詳細については、個々のメッセージプロパティを参照してください。

導入:
1.2
作成者:
Rob Harrop, Juergen Hoeller, Sam Brannen
関連事項:
  • フィールドの詳細

    • PLACEHOLDER_METHOD_NAME

      public static final StringSE PLACEHOLDER_METHOD_NAME
      $[methodName] プレースホルダー。呼び出されるメソッドの名前に置き換えられます。
      関連事項:
    • PLACEHOLDER_TARGET_CLASS_NAME

      public static final StringSE PLACEHOLDER_TARGET_CLASS_NAME
      $[targetClassName] プレースホルダー。メソッド呼び出しターゲットの Class の完全修飾名に置き換えられます。
      関連事項:
    • PLACEHOLDER_TARGET_CLASS_SHORT_NAME

      public static final StringSE PLACEHOLDER_TARGET_CLASS_SHORT_NAME
      $[targetClassShortName] プレースホルダー。メソッド呼び出しターゲットの Class の短い名前に置き換えられます。
      関連事項:
    • PLACEHOLDER_RETURN_VALUE

      public static final StringSE PLACEHOLDER_RETURN_VALUE
      $[returnValue] プレースホルダー。メソッド呼び出しによって返された値の String 表現に置き換えられます。
      関連事項:
    • PLACEHOLDER_ARGUMENT_TYPES

      public static final StringSE PLACEHOLDER_ARGUMENT_TYPES
      $[argumentTypes] プレースホルダー。メソッド呼び出しの引数型のコンマ区切りリストで置き換えられます。引数の型は短いクラス名として記述されます。
      関連事項:
    • PLACEHOLDER_ARGUMENTS

      public static final StringSE PLACEHOLDER_ARGUMENTS
      $[arguments] プレースホルダー。メソッド呼び出しの引数値のコンマ区切りリストで置き換えられます。各引数型の toString() メソッドに依存します。
      関連事項:
    • PLACEHOLDER_EXCEPTION

      public static final StringSE PLACEHOLDER_EXCEPTION
      $[exception] プレースホルダー。メソッドの呼び出し中に発生した Throwable の String 表現に置き換えられます。
      関連事項:
    • PLACEHOLDER_INVOCATION_TIME

      public static final StringSE PLACEHOLDER_INVOCATION_TIME
      $[invocationTime] プレースホルダー。呼び出しにかかった時間(ミリ秒単位)に置き換えられます。
      関連事項:
  • コンストラクターの詳細

    • CustomizableTraceInterceptor

      public CustomizableTraceInterceptor()
  • メソッドの詳細

    • setEnterMessage

      public void setEnterMessage(StringSE enterMessage) throws IllegalArgumentExceptionSE
      メソッドエントリログメッセージに使用するテンプレートを設定します。このテンプレートには、次のプレースホルダーを含めることができます。
      • $[targetClassName]
      • $[targetClassShortName]
      • $[argumentTypes]
      • $[arguments]
      例外:
      IllegalArgumentExceptionSE
    • setExitMessage

      public void setExitMessage(StringSE exitMessage)
      メソッド出口ログメッセージに使用するテンプレートを設定します。このテンプレートには、次のプレースホルダーを含めることができます。
      • $[targetClassName]
      • $[targetClassShortName]
      • $[argumentTypes]
      • $[arguments]
      • $[returnValue]
      • $[invocationTime]
    • setExceptionMessage

      public void setExceptionMessage(StringSE exceptionMessage)
      メソッド例外ログメッセージに使用するテンプレートを設定します。このテンプレートには、次のプレースホルダーを含めることができます。
      • $[targetClassName]
      • $[targetClassShortName]
      • $[argumentTypes]
      • $[arguments]
      • $[exception]
    • invokeUnderTrace

      protected ObjectSE invokeUnderTrace(MethodInvocation invocation, Log logger) throws ThrowableSE
      enterMessage の値に基づいて、呼び出し前にログメッセージを書き込みます。呼び出しが成功すると、終了時にログメッセージが値 exitMessage に基づいて書き込まれます。呼び出し中に例外が発生した場合、exceptionMessage の値に基づいてメッセージが書き込まれます。
      次で指定:
      クラス AbstractTraceInterceptorinvokeUnderTrace 
      logger - トレースメッセージを書き込む Log 
      戻り値:
      MethodInvocation.proceed() の呼び出しの結果
      例外:
      ThrowableSE - MethodInvocation.proceed() の呼び出しでエラーが発生した場合
      関連事項:
    • replacePlaceholders

      protected StringSE replacePlaceholders(StringSE message, MethodInvocation methodInvocation, @Nullable ObjectSE returnValue, @Nullable ThrowableSE throwable, long invocationTime)
      指定されたメッセージのプレースホルダーを、指定された値、指定された値から派生した値に置き換えます。
      パラメーター:
      message - 置き換えられるプレースホルダーを含むメッセージテンプレート
      methodInvocation - ログに記録される MethodInvocation  $[exception] および $[returnValue] を除くすべてのプレースホルダーの値を導出するために使用されます。
      returnValue - 呼び出しによって返される値。$[returnValue] プレースホルダーを置き換えるために使用されます。null の場合があります。
      throwable - 呼び出し中に発生した ThrowableThrowable.toString() の値は、$[exception] プレースホルダーに置き換えられます。null の場合があります。
      invocationTime - $[invocationTime] プレースホルダーの代わりに書き込む値
      戻り値:
      ログに書き込むフォーマット済み出力