クラス AbstractTraceInterceptor
- 実装されているすべてのインターフェース:
SerializableSE、Advice、Interceptor、MethodInterceptor
MethodInterceptor 実装。 デフォルトでは、ログメッセージはインターセプトされているクラスではなく、インターセプタークラスのログに書き込まれます。useDynamicLogger Bean プロパティを true に設定すると、インターセプトされるターゲットクラスのすべてのログメッセージが Log に書き込まれます。
サブクラスは invokeUnderTrace メソッドを実装する必要があります。このメソッドは、特定の呼び出しをトレースする必要があるときにのみ、このクラスによって呼び出されます。サブクラスは、提供された Log インスタンスに書き込む必要があります。
- 導入:
- 1.2
- 作成者:
- Rob Harrop, Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected ClassSE<?>getClassForLogging(ObjectSE target) ロギングの目的で使用するクラスを決定します。protected LoggetLoggerForInvocation(MethodInvocation invocation) 指定されたMethodInvocationに使用する適切なLogインスタンスを返します。invoke(MethodInvocation invocation) 特定のMethodInvocationに対してロギングを有効にするかどうかを決定します。protected abstract ObjectSEinvokeUnderTrace(MethodInvocation invocation, Log logger) サブクラスは、このメソッドをオーバーライドして、提供されたMethodInvocationの周囲のトレースを実行する必要があります。protected booleanisInterceptorEnabled(MethodInvocation invocation, Log logger) インターセプターを開始するかどうか、つまりinvokeUnderTraceメソッドを呼び出す必要があるかどうかを決定します。protected booleanisLogEnabled(Log logger) 指定されたLogインスタンスが有効かどうかを確認します。voidsetHideProxyClassNames(boolean hideProxyClassNames) "true" に設定すると、dynamic loggersが可能な限りプロキシクラス名を非表示にします。voidsetLogExceptionStackTrace(boolean logExceptionStackTrace) ロガーに例外を渡すかどうかを設定し、ログにスタックトレースを含めることを提案します。voidsetLoggerName(StringSE loggerName) 使用するロガーの名前を設定します。voidsetUseDynamicLogger(boolean useDynamicLogger) 動的ロガーと静的ロガーのどちらを使用するかを設定します。protected voidwriteToLog(Log logger, StringSE message) 提供されたトレースメッセージを提供されたLogインスタンスに書き込みます。protected voidwriteToLog(Log logger, StringSE message, ThrowableSE ex) 指定されたトレースメッセージとThrowableSE を指定されたLogインスタンスに書き込みます。
フィールドの詳細
defaultLogger
トレースメッセージの書き込みに使用されるデフォルトのLogインスタンス。このインスタンスは、実装するClassにマップされます。
コンストラクターの詳細
AbstractTraceInterceptor
public AbstractTraceInterceptor()
メソッドの詳細
setUseDynamicLogger
public void setUseDynamicLogger(boolean useDynamicLogger) 動的ロガーと静的ロガーのどちらを使用するかを設定します。デフォルトは、このトレースインターセプターの静的ロガーです。特定のメソッド呼び出しのログメッセージを書き込むために使用する
Logインスタンスを決定するために使用されます。Classが呼び出される動的なインスタンス、またはトレースインターセプターのClassが静的なインスタンスです。注意 : このプロパティまたは "loggerName" のいずれかを指定します。両方は指定しないでください。
setLoggerName
使用するロガーの名前を設定します。名前は 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
特定のMethodInvocationに対してロギングを有効にするかどうかを決定します。そうでない場合、メソッド呼び出しは通常どおり続行されます。そうでない場合、メソッド呼び出しは処理のためにinvokeUnderTraceメソッドに渡されます。- 次で指定:
- インターフェース
MethodInterceptorのinvoke - パラメーター:
invocation- メソッド呼び出しジョインポイント- 戻り値:
Joinpoint.proceed()の呼び出しの結果。インターセプターによってインターセプトされる可能性があります- 例外:
ThrowableSE- インターセプターまたはターゲットオブジェクトが例外をスローする場合- 関連事項:
getLoggerForInvocation
指定されたMethodInvocationに使用する適切なLogインスタンスを返します。useDynamicLoggerフラグが設定されている場合、LogインスタンスはMethodInvocationのターゲットクラス用です。それ以外の場合は、Logがデフォルトの静的ロガーになります。- パラメーター:
invocation- トレースされるMethodInvocation- 戻り値:
- 使用する
Logインスタンス - 関連事項:
getClassForLogging
ロギングの目的で使用するクラスを決定します。- パラメーター:
target- イントロスペクトするターゲットオブジェクト- 戻り値:
- 指定されたオブジェクトのターゲットクラス
- 関連事項:
isInterceptorEnabled
インターセプターを開始するかどうか、つまりinvokeUnderTraceメソッドを呼び出す必要があるかどうかを決定します。デフォルトの動作は、指定された
Logインスタンスが有効かどうかを確認することです。サブクラスはこれをオーバーライドして、他の場合にもインターセプターを適用できます。- パラメーター:
invocation- トレースされるMethodInvocationlogger- チェックするLogインスタンス- 関連事項:
isLogEnabled
指定されたLogインスタンスが有効かどうかを確認します。「トレース」レベルが有効な場合、デフォルトは
trueです。サブクラスはこれをオーバーライドして、「トレース」が発生するレベルを変更できます。- パラメーター:
logger- チェックするLogインスタンス
writeToLog
提供されたトレースメッセージを提供されたLogインスタンスに書き込みます。Enter/Exit メッセージのために
invokeUnderTrace(org.aopalliance.intercept.MethodInvocation, org.apache.commons.logging.Log)によって呼び出されます。基になるロガーの呼び出しを制御する究極のデリゲートとして
writeToLog(Log, String, Throwable)にデリゲートします。- 導入:
- 4.3.10
- 関連事項:
writeToLog
指定されたトレースメッセージとThrowableSE を指定されたLogインスタンスに書き込みます。Enter/Exit の結果(例外を含む可能性があります)のために
invokeUnderTrace(org.aopalliance.intercept.MethodInvocation, org.apache.commons.logging.Log)によって呼び出されます。setLogExceptionStackTrace(boolean)が "false" の場合、例外のスタックトレースはログに記録されないことに注意してください。デフォルトでは、メッセージは
TRACEレベルで書き込まれます。サブクラスはこのメソッドをオーバーライドして、メッセージが書き込まれるレベルを制御できます。通常、それに応じてisLogEnabled(org.apache.commons.logging.Log)もオーバーライドされます。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()の呼び出しでエラーが発生した場合- 関連事項: