com.opensymphony.xwork2.interceptor
Class TimerInterceptor

java.lang.Object
  extended by com.opensymphony.xwork2.interceptor.AbstractInterceptor
      extended by com.opensymphony.xwork2.interceptor.TimerInterceptor
All Implemented Interfaces:
Interceptor, java.io.Serializable

public class TimerInterceptor
extends AbstractInterceptor

This interceptor logs the amount of time in milliseconds. In order for this interceptor to work properly, the logging framework must be set to at least the INFO level. This interceptor relies on the Commons Logging API to report its execution-time value.

The parameters above enables us to log all action execution times in our own logfile. This interceptor can be extended to provide custom message format. Users should override the invokeUnderTiming method.
 
 <!-- records only the action's execution time -->
 <action name="someAction" class="com.examples.SomeAction">
     <interceptor-ref name="completeStack"/>
     <interceptor-ref name="timer"/>
     <result name="success">good_result.ftl</result>
 </action>

 <!-- records action's execution time as well as other interceptors-->
 <action name="someAction" class="com.examples.SomeAction">
     <interceptor-ref name="timer"/>
     <interceptor-ref name="completeStack"/>
     <result name="success">good_result.ftl</result>
 </action>
 
 
This second example uses our own log category at debug level.
 
 <!-- records only the action's execution time -->
 <action name="someAction" class="com.examples.SomeAction">
     <interceptor-ref name="completeStack"/>
     <interceptor-ref name="timer">
         <param name="logLevel">debug</param>
         <param name="logCategory">com.mycompany.myapp.actiontime</param>
     <interceptor-ref/>
     <result name="success">good_result.ftl</result>
 </action>

 <!-- records action's execution time as well as other interceptors-->
 <action name="someAction" class="com.examples.SomeAction">
     <interceptor-ref name="timer"/>
     <interceptor-ref name="completeStack"/>
     <result name="success">good_result.ftl</result>
 </action>
 
 

Author:
Jason Carreira, Claus Ibsen
See Also:
Serialized Form

Field Summary
protected  Logger categoryLogger
           
protected static Logger LOG
           
protected  java.lang.String logCategory
           
protected  java.lang.String logLevel
           
 
Constructor Summary
TimerInterceptor()
           
 
Method Summary
protected  void doLog(Logger logger, java.lang.String message)
          Performs the actual logging.
 java.lang.String getLogCategory()
           
protected  Logger getLoggerToUse()
          Get's the logger to use.
 java.lang.String getLogLevel()
           
 java.lang.String intercept(ActionInvocation invocation)
          Override to handle interception
protected  java.lang.String invokeUnderTiming(ActionInvocation invocation)
          Is called to invoke the action invocation and time the execution time.
 void setLogCategory(java.lang.String logCatgory)
           
 void setLogLevel(java.lang.String logLevel)
           
protected  boolean shouldLog()
          Determines if we should log the time.
 
Methods inherited from class com.opensymphony.xwork2.interceptor.AbstractInterceptor
destroy, init
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

protected static final Logger LOG

categoryLogger

protected Logger categoryLogger

logCategory

protected java.lang.String logCategory

logLevel

protected java.lang.String logLevel
Constructor Detail

TimerInterceptor

public TimerInterceptor()
Method Detail

getLogCategory

public java.lang.String getLogCategory()

setLogCategory

public void setLogCategory(java.lang.String logCatgory)

getLogLevel

public java.lang.String getLogLevel()

setLogLevel

public void setLogLevel(java.lang.String logLevel)

intercept

public java.lang.String intercept(ActionInvocation invocation)
                           throws java.lang.Exception
Description copied from class: AbstractInterceptor
Override to handle interception

Specified by:
intercept in interface Interceptor
Specified by:
intercept in class AbstractInterceptor
Parameters:
invocation - the action invocation
Returns:
the return code, either returned from ActionInvocation.invoke(), or from the interceptor itself.
Throws:
java.lang.Exception - any system-level error, as defined in Action.execute().

invokeUnderTiming

protected java.lang.String invokeUnderTiming(ActionInvocation invocation)
                                      throws java.lang.Exception
Is called to invoke the action invocation and time the execution time.

Parameters:
invocation - the action invocation.
Returns:
the result of the action execution.
Throws:
java.lang.Exception - can be thrown from the action.

shouldLog

protected boolean shouldLog()
Determines if we should log the time.

Returns:
true to log, false to not log.

getLoggerToUse

protected Logger getLoggerToUse()
Get's the logger to use.

Returns:
the logger to use.

doLog

protected void doLog(Logger logger,
                     java.lang.String message)
Performs the actual logging.

Parameters:
logger - the provided logger to use.
message - the message to log.


Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.