public class FacesRequestLogger extends DefaultPhaseListener
 The FacesRequestLogger is a PhaseListener which logs the Faces request detail as Level.INFO.
 The log format is as below:
 
 method{url, user, action, params, messages, timer}
 
 Where:
 method: the HTTP request method, usually GET or POST.url: the request URI with query string.user: the user detail, composed of:ip: the user IP, as obtained by Faces.getRemoteAddr().login: the user login, as obtained by Faces.getRemoteUser().session: the session ID, as obtained by Faces.getSessionId().viewState: the server side JSF view state identifier, if any.action: the action detail, composed of:source: the action source, as obtained by Components.getCurrentActionSource().event: the action event name, if any.methods: the action methods, as obtained by Components.getActionExpressionsAndListeners(UIComponent)validationFailed: whether JSF validation has failed.params: the HTTP request parameters whereby any parameters whose name matches javax.faces.* are skipped,
 and whose name ends with password or token are masked with value ********.messages: all Faces messages added so far.timer: the duration of each phase measured in milliseconds, or -1 if the phase has been skipped, composed of:0: total time.1: duration of PhaseId.RESTORE_VIEW.2: duration of PhaseId.APPLY_REQUEST_VALUES.3: duration of PhaseId.PROCESS_VALIDATIONS.4: duration of PhaseId.UPDATE_MODEL_VALUES.5: duration of PhaseId.INVOKE_APPLICATION.6: duration of PhaseId.RENDER_RESPONSE.
 Register it as <phase-listener> in faces-config.xml.
 
 <lifecycle>
     <phase-listener>org.omnifaces.eventlistener.FacesRequestLogger</phase-listener>
 </lifecycle>
 | Constructor and Description | 
|---|
| FacesRequestLogger()Listen on any phase. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | afterPhase(PhaseEvent event)After any phase, stop the timer, and if the current phase is RENDER_RESPONSE, or the response is complete, then log the Faces request
 detail. | 
| void | beforePhase(PhaseEvent event)Before any phase, start the timer. | 
| protected Map<String,Object> | getActionDetails(FacesContext context)You can override this if you need more fine grained control over logging of action details. | 
| protected Map<String,List<String>> | getFacesMessages(FacesContext context)You can override this if you need more fine grained control over logging of faces messages. | 
| protected Map<String,Object> | getLogDetails(FacesContext context)You can override this if you need more fine grained control over log details. | 
| protected Pattern | getPasswordRequestParameterPattern(FacesContext context)You can override this if you need to change the default pattern for password based request parameters which will be filtered in
  getRequestParameters(FacesContext). | 
| protected Map<String,String> | getRequestParameters(FacesContext context)You can override this if you need more fine grained control over logging of request parameters. | 
| protected Map<String,Object> | getUserDetails(FacesContext context)You can override this if you need more fine grained control over logging of user details. | 
getPhaseIdpublic void beforePhase(PhaseEvent event)
beforePhase in interface PhaseListenerbeforePhase in class DefaultPhaseListenerpublic void afterPhase(PhaseEvent event)
afterPhase in interface PhaseListenerafterPhase in class DefaultPhaseListenerprotected Map<String,Object> getLogDetails(FacesContext context)
context - The involved faces context.protected Map<String,Object> getUserDetails(FacesContext context)
context - The involved faces context.protected Map<String,Object> getActionDetails(FacesContext context)
context - The involved faces context.protected Map<String,String> getRequestParameters(FacesContext context)
context - The involved faces context.protected Pattern getPasswordRequestParameterPattern(FacesContext context)
getRequestParameters(FacesContext).
 The default pattern matches every request parameter name ending with "password" or "token", case insensitive.context - The involved faces context.protected Map<String,List<String>> getFacesMessages(FacesContext context)
context - The involved faces context.Copyright © 2012–2020 OmniFaces. All rights reserved.