com.opensymphony.xwork2.interceptor.LoggingInterceptor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xwork Show documentation
Show all versions of xwork Show documentation
XWork is an command-pattern framework that is used to power WebWork
as well as other applications. XWork provides an Inversion of Control
container, a powerful expression language, data type conversion,
validation, and pluggable configuration.
/*
* Copyright (c) 2002-2006 by OpenSymphony
* All rights reserved.
*/
package com.opensymphony.xwork2.interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
*
* This interceptor logs the the start and end of the execution an action (in English-only, not internationalized).
*
*
*
* There are no parameters for this interceptor.
*
*
*
* There are no obvious extensions to the existing interceptor.
*
*
*
*
* <!-- prints out a message before and after the immediate action execution -->
* <action name="someAction" class="com.examples.SomeAction">
* <interceptor-ref name="completeStack"/>
* <interceptor-ref name="logger"/>
* <result name="success">good_result.ftl</result>
* </action>
*
* <!-- prints out a message before any more interceptors continue and after they have finished -->
* <action name="someAction" class="com.examples.SomeAction">
* <interceptor-ref name="logger"/>
* <interceptor-ref name="completeStack"/>
* <result name="success">good_result.ftl</result>
* </action>
*
*
*
* @author Jason Carreira
*/
public class LoggingInterceptor extends AbstractInterceptor {
private static final Log log = LogFactory.getLog(LoggingInterceptor.class);
private static final String FINISH_MESSAGE = "Finishing execution stack for action ";
private static final String START_MESSAGE = "Starting execution stack for action ";
public String intercept(ActionInvocation invocation) throws Exception {
logMessage(invocation, FINISH_MESSAGE);
String result = invocation.invoke();
logMessage(invocation, START_MESSAGE);
return result;
}
private void logMessage(ActionInvocation invocation, String baseMessage) {
if (log.isInfoEnabled()) {
StringBuffer message = new StringBuffer(baseMessage);
String namespace = invocation.getProxy().getNamespace();
if ((namespace != null) && (namespace.trim().length() > 0)) {
message.append(namespace).append("/");
}
message.append(invocation.getProxy().getActionName());
log.info(message.toString());
}
}
}