クラス AbstractTraceInterceptor

java.lang.ObjectSE
org.springframework.aop.interceptor.AbstractTraceInterceptor
実装されたすべてのインターフェース:
SerializableSEAdviceInterceptorMethodInterceptor
既知の直属サブクラス
AbstractMonitoringInterceptorCustomizableTraceInterceptorSimpleTraceInterceptor

public abstract class AbstractTraceInterceptor extends ObjectSE implements MethodInterceptor, SerializableSE
トレース用のベース MethodInterceptor 実装。

デフォルトでは、ログメッセージはインターセプトされているクラスではなく、インターセプタークラスのログに書き込まれます。useDynamicLogger Bean プロパティを true に設定すると、インターセプトされるターゲットクラスのすべてのログメッセージが Log に書き込まれます。

サブクラスは invokeUnderTrace メソッドを実装する必要があります。このメソッドは、特定の呼び出しをトレースする必要があるときにのみ、このクラスによって呼び出されます。サブクラスは、提供された Log インスタンスに書き込む必要があります。

導入:
1.2
作成者:
Rob Harrop, Juergen Hoeller
関連事項:
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected Log
    トレースメッセージの書き込みに使用されるデフォルトの Log インスタンス。
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected ClassSE<?>
    ロギングの目的で使用するクラスを決定します。
    protected Log
    指定された MethodInvocation に使用する適切な Log インスタンスを返します。
    特定の MethodInvocation に対してロギングを有効にするかどうかを決定します。
    protected abstract ObjectSE
    サブクラスは、このメソッドをオーバーライドして、提供された MethodInvocation の周囲のトレースを実行する必要があります。
    protected boolean
    インターセプターを開始するかどうか、つまり invokeUnderTrace メソッドを呼び出す必要があるかどうかを決定します。
    protected boolean
    指定された Log インスタンスが有効かどうかを確認します。
    void
    setHideProxyClassNames(boolean hideProxyClassNames)
    "true" に設定すると、dynamic loggers が可能な限りプロキシクラス名を非表示にします。
    void
    setLogExceptionStackTrace(boolean logExceptionStackTrace)
    ロガーに例外を渡すかどうかを設定し、ログにスタックトレースを含めることを提案します。
    void
    使用するロガーの名前を設定します。
    void
    setUseDynamicLogger(boolean useDynamicLogger)
    動的ロガーと静的ロガーのどちらを使用するかを設定します。
    protected void
    writeToLog(Log logger, StringSE message)
    提供されたトレースメッセージを提供された Log インスタンスに書き込みます。
    protected void
    writeToLog(Log logger, StringSE message, ThrowableSE ex)
    指定されたトレースメッセージと ThrowableSE を指定された Log インスタンスに書き込みます。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • defaultLogger

      @Nullable protected transient Log defaultLogger
      トレースメッセージの書き込みに使用されるデフォルトの Log インスタンス。このインスタンスは、実装する Class にマップされます。
  • コンストラクターの詳細

    • AbstractTraceInterceptor

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

    • setUseDynamicLogger

      public void setUseDynamicLogger(boolean useDynamicLogger)
      動的ロガーと静的ロガーのどちらを使用するかを設定します。デフォルトは、このトレースインターセプターの静的ロガーです。

      特定のメソッド呼び出しのログメッセージを書き込むために使用する Log インスタンスを決定するために使用されます。Class が呼び出される動的なインスタンス、またはトレースインターセプターの Class が静的なインスタンスです。

      注意 : このプロパティまたは "loggerName" のいずれかを指定します。両方を指定することはできません。

      関連事項:
    • setLoggerName

      public void setLoggerName(StringSE loggerName)
      使用するロガーの名前を設定します。名前は Commons Logging を介して基盤となるロガー実装に渡され、ロガーの構成に従ってログカテゴリとして解釈されます。

      これは、クラスのカテゴリ(このインターセプターのクラスまたは呼び出されるクラスのいずれか)にログインするのではなく、特定の名前付きカテゴリにログインするように指定できます。

      注意 : このプロパティまたは "useDynamicLogger" のいずれかを指定します。両方を指定することはできません。

      関連事項:
    • setHideProxyClassNames

      public void setHideProxyClassNames(boolean hideProxyClassNames)
      "true" に設定すると、dynamic loggers が可能な限りプロキシクラス名を非表示にします。デフォルトは "false" です。
    • setLogExceptionStackTrace

      public void setLogExceptionStackTrace(boolean logExceptionStackTrace)
      ロガーに例外を渡すかどうかを設定し、ログにスタックトレースを含めることを提案します。デフォルトは "true" です。これを "false" に設定して、ログ出力をトレースメッセージ(該当する場合は例外クラス名と例外メッセージが含まれる場合があります)だけに減らします。
      導入:
      4.3.10
    • invoke

      @Nullable public ObjectSE invoke(MethodInvocation invocation) throws ThrowableSE
      特定の MethodInvocation に対してロギングを有効にするかどうかを決定します。そうでない場合、メソッド呼び出しは通常どおり続行されます。そうでない場合、メソッド呼び出しは処理のために invokeUnderTrace メソッドに渡されます。
      次で指定:
      インターフェース MethodInterceptorinvoke 
      パラメーター:
      invocation - メソッド呼び出しジョインポイント
      戻り値:
      Joinpoint.proceed() の呼び出しの結果。インターセプターによってインターセプトされる可能性があります
      例外:
      ThrowableSE - インターセプターまたはターゲットオブジェクトが例外をスローする場合
      関連事項:
    • getLoggerForInvocation

      protected Log getLoggerForInvocation(MethodInvocation invocation)
      指定された MethodInvocation に使用する適切な Log インスタンスを返します。useDynamicLogger フラグが設定されている場合、Log インスタンスは MethodInvocation のターゲットクラス用です。それ以外の場合は、Log がデフォルトの静的ロガーになります。
      パラメーター:
      invocation - トレースされる MethodInvocation 
      戻り値:
      使用する Log インスタンス
      関連事項:
    • getClassForLogging

      protected ClassSE<?> getClassForLogging(ObjectSE target)
      ロギングの目的で使用するクラスを決定します。
      パラメーター:
      target - イントロスペクトするターゲットオブジェクト
      戻り値:
      指定されたオブジェクトのターゲットクラス
      関連事項:
    • isInterceptorEnabled

      protected boolean isInterceptorEnabled(MethodInvocation invocation, Log logger)
      インターセプターを開始するかどうか、つまり invokeUnderTrace メソッドを呼び出す必要があるかどうかを決定します。

      デフォルトの動作は、指定された Log インスタンスが有効かどうかを確認することです。サブクラスはこれをオーバーライドして、他の場合にもインターセプターを適用できます。

      パラメーター:
      invocation - トレースされる MethodInvocation 
      logger - チェックする Log インスタンス
      関連事項:
    • isLogEnabled

      protected boolean isLogEnabled(Log logger)
      指定された Log インスタンスが有効かどうかを確認します。

      「トレース」レベルが有効な場合、デフォルトは true です。サブクラスはこれをオーバーライドして、「トレース」が発生するレベルを変更できます。

      パラメーター:
      logger - チェックする Log インスタンス
    • writeToLog

      protected void writeToLog(Log logger, StringSE message)
      提供されたトレースメッセージを提供された Log インスタンスに書き込みます。

      Enter/Exit メッセージのために invokeUnderTrace(org.aopalliance.intercept.MethodInvocation, org.apache.commons.logging.Log) によって呼び出されます。

      基になるロガーの呼び出しを制御する究極のデリゲートとして writeToLog(Log, String, Throwable) にデリゲートします。

      導入:
      4.3.10
      関連事項:
    • writeToLog

      protected void writeToLog(Log logger, StringSE message, @Nullable ThrowableSE ex)
      指定されたトレースメッセージと ThrowableSE を指定された Log インスタンスに書き込みます。

      Enter/Exit の結果(例外を含む可能性があります)のために invokeUnderTrace(org.aopalliance.intercept.MethodInvocation, org.apache.commons.logging.Log) によって呼び出されます。setLogExceptionStackTrace(boolean) が "false" の場合、例外のスタックトレースはログに記録されないことに注意してください。

      デフォルトでは、メッセージは TRACE レベルで書き込まれます。サブクラスはこのメソッドをオーバーライドして、メッセージが書き込まれるレベルを制御できます。通常、それに応じて isLogEnabled(org.apache.commons.logging.Log) もオーバーライドされます。

      導入:
      4.3.10
      関連事項:
    • invokeUnderTrace

      @Nullable protected abstract ObjectSE invokeUnderTrace(MethodInvocation invocation, Log logger) throws ThrowableSE
      提供された MethodInvocation をトレースするために、サブクラスはこのメソッドをオーバーライドする必要があります。サブクラスは、MethodInvocation.proceed() を呼び出して MethodInvocation が実際に実行されるようにする責任があります。

      デフォルトでは、渡された Log インスタンスでログレベル「トレース」が有効になります。サブクラスは、デフォルトの動作を変更するために isInterceptorEnabled メソッドを上書きし、実際のメッセージを書き込むために writeToLog に委譲しない限り、これを再度チェックする必要はありません。

      パラメーター:
      logger - トレースメッセージを書き込む Log 
      戻り値:
      MethodInvocation.proceed() の呼び出しの結果
      例外:
      ThrowableSE - MethodInvocation.proceed() の呼び出しでエラーが発生した場合
      関連事項: