When it comes to the whole request, I guess you can put a filter on top
of all the filters to handle this so you don't necessarily need a
Stripes facility for this.
Regards,
Cosmin
> Hello list,
> I need to write an interceptor to log the execution time for a
> request. Nothing's more easy than that - I thought. Just intercept the
> most low level Stage, execute the others stages in between and then
> log the time. But i didn't find a way to intercept the whole request.
> What I've done so far is this interceptor:
> @Intercepts(
> {
> LifecycleStage.RequestInit,
> LifecycleStage.ActionBeanResolution,
> LifecycleStage.HandlerResolution,
> LifecycleStage.BindingAndValidation,
> LifecycleStage.CustomValidation,
> LifecycleStage.EventHandling,
> LifecycleStage.ResolutionExecution,
> LifecycleStage.RequestComplete })
> public class CallTimeInterceptor implements Interceptor {
> private static final Logger logger =
> Logger.getLogger(CallTimeInterceptor.class);
> private static final String FORMAT_STRING = "Call to {0}, stage {1}
> took {2}ms";
>
> public Resolution intercept(ExecutionContext context) throws Exception {
> if (logger.isInfoEnabled()) {
> long nanoTime = System.nanoTime();
> Resolution proceed = context.proceed();
> logger.info(MessageFormat.format(FORMAT_STRING,
> context.getActionBeanContext().getRequest().getRequestURL(), context
> .getLifecycleStage(),
> Double.valueOf(System.nanoTime() -
> nanoTime) / 1000000.0));
> return proceed;
> } else
> return context.proceed();
> }
> }
>
> This creates the following logEntries:
> [ INFO] 10:25:26 ....controllers.interceptors.CallTimeInterceptor:31 -
> Call to http://127.0.0.1:8080/dwhfe/pub/Authentication.htm, stage
> RequestInit took 0,103ms
> [ INFO] 10:25:27 ...controllers.interceptors.CallTimeInterceptor:31 -
> Call to http://127.0.0.1:8080/dwhfe/pub/Authentication.htm, stage
> ActionBeanResolution took 506,321ms
> [ INFO] 10:25:27 ...controllers.interceptors.CallTimeInterceptor:31 -
> Call to http://127.0.0.1:8080/dwhfe/pub/Authentication.htm, stage
> HandlerResolution took 3,613ms
> [ INFO] 10:25:27 ...controllers.interceptors.CallTimeInterceptor:31 -
> Call to http://127.0.0.1:8080/dwhfe/pub/Authentication.htm, stage
> BindingAndValidation took 0,013ms
> [ INFO] 10:25:27 ...controllers.interceptors.CallTimeInterceptor:31 -
> Call to http://127.0.0.1:8080/dwhfe/pub/Authentication.htm, stage
> EventHandling took 3,761ms
> [ INFO] 10:25:27 ...controllers.interceptors.CallTimeInterceptor:31 -
> Call to http://127.0.0.1:8080/dwhfe/pub/Authentication.htm, stage
> ResolutionExecution took 467,878ms
> [ INFO] 10:25:27 ...controllers.interceptors.CallTimeInterceptor:31 -
> Call to http://127.0.0.1:8080/dwhfe/pub/Authentication.htm, stage
> RequestComplete took 0,013ms
>
> I googled around but didn't find a way to configure the interceptor in
> a way, that it encapsulates the whole call, not only the single
> stages. Of course I could write the startTime into the request in life
> cycle RequestInit and read it out in RequestComplete but I'm scared of
> the possible performance hit. So is there a way to do this?
>
> Thanks for your time,
> Richard
>
> ------------------------------------------------------------------------------
> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
> easily build your RIAs with Flex Builder, the Eclipse(TM)based development
> software that enables intelligent coding and step-through debugging.
> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
> _______________________________________________
> Stripes-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-users
>
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users