Hello,
you could also use a custom ActionListener implementation if the method
expression being processed is sufficient (for example, "Processing the
action '#{actionBean.processAction}'."), as Andrew has already mentioned.
///
import javax.faces.component.ActionSource;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class LoggingActionListener implements ActionListener {
private static final Log log =
LogFactory.getLog(LoggingActionListener.class);
private ActionListener delegate;
public LoggingActionListener(ActionListener delegate) {
this.delegate = delegate;
}
public void processAction(ActionEvent actionEvent)
throws AbortProcessingException {
if (log.isDebugEnabled()) {
ActionSource actionSource = (ActionSource)
actionEvent.getComponent();
log.debug("Processing the action '" +
actionSource.getAction().getExpressionString() + "'.");
}
delegate.processAction(actionEvent);
}
}
\\\
///
// faces-config.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<application>
<action-listener>demo.LoggingActionListener</action-listener>
</application>
</faces-config>
\\\
regards,
Bernhard
Svilen Ivanov wrote:
Andrew,
I think it is fine to wait for the action to end. However, if
NavigationHandlerImpl does it for me - all I have to do is to enable
the log. Thank you for your reply - I'll give it a shot.
Regards,
Svilen
2007/8/29, Andrew Robinson <[EMAIL PROTECTED]>:
If you can wait until after the action has been called, you can use
the ActionListener of the JSF Application or the NavigationHandler as
both have access to the action EL expression. BTW - the myfaces
NavigationHandlerImpl already logs each call at debug level.
-Andrew
On 8/29/07, Svilen Ivanov <[EMAIL PROTECTED]> wrote:
For audit and debugging purposes I want to log the name of action
method that is being called. Is it possible to hook somewhere in JSF
lifecycle? Or should I use Aspect oriented approach?
Any ideas are appreciated?
--
Svilen Ivanov
http://svilen-online.blogspot.com
There is no dark side of the moon really.
Matter of fact it's all dark.