| java.lang.Object org.springframework.aop.interceptor.AbstractTraceInterceptor org.springframework.aop.interceptor.CustomizableTraceInterceptor
CustomizableTraceInterceptor | public class CustomizableTraceInterceptor extends AbstractTraceInterceptor (Code) | | MethodInterceptor implementation that allows for highly customizable
method-level tracing, using placeholders.
Trace messages are written on method entry, and if the method invocation succeeds
on method exit. If an invocation results in an exception, then an exception message
is written. The contents of these trace messages is fully customizable and special
placeholders are available to allow you to include runtime information in your log
messages. The placeholders available are:
$[methodName] - replaced with the name of the method being invoked
$[targetClassName] - replaced with the name of the class that is
the target of the invocation
$[targetClassShortName] - replaced with the short name of the class
that is the target of the invocation
$[returnValue] - replaced with the value returned by the invocation
$[argumentTypes] - replaced with a comma-separated list of the
short class names of the method arguments
$[arguments] - replaced with a comma-separated list of the
String representation of the method arguments
$[exception] - replaced with the String representation
of any Throwable raised during the invocation
$[invocationTime] - replaced with the time, in milliseconds,
taken by the method invocation
There are restrictions on which placeholders can be used in which messages:
see the individual message properties for details on the valid placeholders.
NOTE: This class requires JDK 1.4 or later. It uses the
java.util.regex package for regular expression matching,
which is only available on JDK 1.4+.
author: Rob Harrop since: 1.2 See Also: CustomizableTraceInterceptor.setEnterMessage See Also: CustomizableTraceInterceptor.setExitMessage See Also: CustomizableTraceInterceptor.setExceptionMessage See Also: SimpleTraceInterceptor |
Method Summary | |
protected Object | invokeUnderTrace(MethodInvocation invocation, Log logger) Writes a log message before the invocation based on the value of enterMessage .
If the invocation succeeds, then a log message is written on exit based on the value
exitMessage . | protected String | replacePlaceholders(String message, MethodInvocation methodInvocation, Object returnValue, Throwable throwable, long invocationTime) Replace the placeholders in the given message with the supplied values,
or values derived from those supplied.
Parameters: message - the message template containing the placeholders to be replaced Parameters: methodInvocation - the MethodInvocation being logged.Used to derive values for all placeholders except $[exception] and $[returnValue] . Parameters: returnValue - any value returned by the invocation.Used to replace the $[returnValue] placeholder. | public void | setEnterMessage(String enterMessage) Ses the template used for method entry log messages. | public void | setExceptionMessage(String exceptionMessage) Set the template used for method exception log messages. | public void | setExitMessage(String exitMessage) Set the template used for method exit log messages. | protected void | writeToLog(Log logger, String message) Writes the supplied message to the supplied Log instance. | protected void | writeToLog(Log logger, String message, Throwable ex) Writes the supplied message and
Throwable to the
supplied Log instance. |
PLACEHOLDER_ARGUMENTS | final public static String PLACEHOLDER_ARGUMENTS(Code) | | The $[arguments] placeholder.
Replaced with a comma separated list of the argument values for the
method invocation. Relies on the toString() method of
each argument type.
|
PLACEHOLDER_ARGUMENT_TYPES | final public static String PLACEHOLDER_ARGUMENT_TYPES(Code) | | The $[argumentTypes] placeholder.
Replaced with a comma-separated list of the argument types for the
method invocation. Argument types are written as short class names.
|
PLACEHOLDER_EXCEPTION | final public static String PLACEHOLDER_EXCEPTION(Code) | | The $[exception] placeholder.
Replaced with the String representation of any
Throwable raised during method invocation.
|
PLACEHOLDER_INVOCATION_TIME | final public static String PLACEHOLDER_INVOCATION_TIME(Code) | | The $[invocationTime] placeholder.
Replaced with the time taken by the invocation (in milliseconds).
|
PLACEHOLDER_METHOD_NAME | final public static String PLACEHOLDER_METHOD_NAME(Code) | | The $[methodName] placeholder.
Replaced with the name of the method being invoked.
|
PLACEHOLDER_RETURN_VALUE | final public static String PLACEHOLDER_RETURN_VALUE(Code) | | The $[returnValue] placeholder.
Replaced with the String representation of the value
returned by the method invocation.
|
PLACEHOLDER_TARGET_CLASS_NAME | final public static String PLACEHOLDER_TARGET_CLASS_NAME(Code) | | The $[targetClassName] placeholder.
Replaced with the fully-qualifed name of the Class
of the method invocation target.
|
PLACEHOLDER_TARGET_CLASS_SHORT_NAME | final public static String PLACEHOLDER_TARGET_CLASS_SHORT_NAME(Code) | | The $[targetClassShortName] placeholder.
Replaced with the short name of the Class of the
method invocation target.
|
replacePlaceholders | protected String replacePlaceholders(String message, MethodInvocation methodInvocation, Object returnValue, Throwable throwable, long invocationTime)(Code) | | Replace the placeholders in the given message with the supplied values,
or values derived from those supplied.
Parameters: message - the message template containing the placeholders to be replaced Parameters: methodInvocation - the MethodInvocation being logged.Used to derive values for all placeholders except $[exception] and $[returnValue] . Parameters: returnValue - any value returned by the invocation.Used to replace the $[returnValue] placeholder. May be null . Parameters: throwable - any Throwable raised during the invocation.The value of Throwable.toString() is replaced for the$[exception] placeholder. May be null . Parameters: invocationTime - the value to write in place of the$[invocationTime] placeholder the formatted output to write to the log |
setEnterMessage | public void setEnterMessage(String enterMessage) throws IllegalArgumentException(Code) | | Ses the template used for method entry log messages.
This template can contain any of the following placeholders:
$[targetClassName]
$[targetClassShortName]
$[argumentTypes]
$[arguments]
throws: IllegalArgumentException - if the message template is emptyor contains any invalid placeholders |
setExceptionMessage | public void setExceptionMessage(String exceptionMessage)(Code) | | Set the template used for method exception log messages.
This template can contain any of the following placeholders:
$[targetClassName]
$[targetClassShortName]
$[argumentTypes]
$[arguments]
$[exception]
throws: IllegalArgumentException - if the message template is emptyor contains any invalid placeholders |
setExitMessage | public void setExitMessage(String exitMessage)(Code) | | Set the template used for method exit log messages.
This template can contain any of the following placeholders:
$[targetClassName]
$[targetClassShortName]
$[argumentTypes]
$[arguments]
$[returnValue]
$[invocationTime]
throws: IllegalArgumentException - if the message template is emptyor contains any invalid placeholders |
writeToLog | protected void writeToLog(Log logger, String message, Throwable ex)(Code) | | Writes the supplied message and
Throwable to the
supplied Log instance. By default messages are written
at TRACE level. Sub-classes can override this method
to control which level the message is written at.
|
Fields inherited from org.springframework.aop.interceptor.AbstractTraceInterceptor | protected transient Log defaultLogger(Code)(Java Doc)
|
|
|