Apache Tomcat 6.0.41

org.apache.catalina.valves
Class ExtendedAccessLogValve

java.lang.Object
  extended by org.apache.catalina.valves.ValveBase
      extended by org.apache.catalina.valves.AccessLogValve
          extended by org.apache.catalina.valves.ExtendedAccessLogValve
All Implemented Interfaces:
javax.management.MBeanRegistration, AccessLog, Contained, Lifecycle, Valve

public class ExtendedAccessLogValve
extends AccessLogValve
implements Lifecycle

An implementation of the W3c Extended Log File Format. See http://www.w3.org/TR/WD-logfile.html for more information about the format. The following fields are supported:

Log rotation can be on or off. This is dictated by the rotatable property.

For UNIX users, another field called checkExists is also available. If set to true, the log file's existence will be checked before each logging. This way an external log rotator can move the file somewhere and Tomcat will start with a new file.

For JMX junkies, a public method called rotate has been made available to allow you to tell this instance to move the existing log file to somewhere else and start writing a new log file.

Conditional logging is also supported. This can be done with the condition property. If the value returned from ServletRequest.getAttribute(condition) yields a non-null value, the logging will be skipped.

For extended attributes coming from a getAttribute() call, it is you responsibility to ensure there are no newline or control characters.

Author:
Tim Funk, Peter Rossbach

Nested Class Summary
protected  class ExtendedAccessLogValve.CookieElement
           
protected static class ExtendedAccessLogValve.DateElement
           
protected  class ExtendedAccessLogValve.PatternTokenizer
           
protected  class ExtendedAccessLogValve.RequestAttributeElement
           
protected  class ExtendedAccessLogValve.RequestHeaderElement
           
protected  class ExtendedAccessLogValve.RequestParameterElement
           
protected  class ExtendedAccessLogValve.ResponseAllHeaderElement
          write a specific response header - x-O(xxx)
protected  class ExtendedAccessLogValve.ResponseHeaderElement
           
protected  class ExtendedAccessLogValve.ServletContextElement
           
protected  class ExtendedAccessLogValve.SessionAttributeElement
           
protected static class ExtendedAccessLogValve.TimeElement
           
 
Nested classes/interfaces inherited from class org.apache.catalina.valves.AccessLogValve
AccessLogValve.AccessLogElement, AccessLogValve.ByteSentElement, AccessLogValve.DateAndTimeElement, AccessLogValve.ElapsedTimeElement, AccessLogValve.HeaderElement, AccessLogValve.HostElement, AccessLogValve.HttpStatusCodeElement, AccessLogValve.LocalAddrElement, AccessLogValve.LocalPortElement, AccessLogValve.LocalServerNameElement, AccessLogValve.LogicalUserNameElement, AccessLogValve.MethodElement, AccessLogValve.ProtocolElement, AccessLogValve.QueryElement, AccessLogValve.RemoteAddrElement, AccessLogValve.RequestElement, AccessLogValve.RequestURIElement, AccessLogValve.SessionIdElement, AccessLogValve.StringElement, AccessLogValve.ThreadNameElement, AccessLogValve.UserElement
 
Field Summary
protected static java.lang.String extendedAccessLogInfo
          The descriptive information about this implementation.
 
Fields inherited from class org.apache.catalina.valves.AccessLogValve
condition, currentLogFile, enabled, encoding, fileDateFormat, fileDateFormatter, info, lifecycle, logElements, months, pattern, prefix, rotatable, sm, started, suffix, writer
 
Fields inherited from class org.apache.catalina.valves.ValveBase
container, containerLog, controller, domain, mserver, next, oname
 
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, DESTROY_EVENT, INIT_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
 
Constructor Summary
ExtendedAccessLogValve()
           
 
Method Summary
protected  AccessLogValve.AccessLogElement[] createLogElements()
          parse pattern string and create the array of AccessLogElement
protected  AccessLogValve.AccessLogElement getClientToServerElement(ExtendedAccessLogValve.PatternTokenizer tokenizer)
           
 java.lang.String getInfo()
          Return descriptive information about this implementation.
protected  AccessLogValve.AccessLogElement getLogElement(java.lang.String token, ExtendedAccessLogValve.PatternTokenizer tokenizer)
           
protected  AccessLogValve.AccessLogElement getProxyElement(ExtendedAccessLogValve.PatternTokenizer tokenizer)
           
protected  AccessLogValve.AccessLogElement getServerToClientElement(ExtendedAccessLogValve.PatternTokenizer tokenizer)
           
protected  AccessLogValve.AccessLogElement getServletRequestElement(java.lang.String parameter)
           
protected  AccessLogValve.AccessLogElement getXParameterElement(ExtendedAccessLogValve.PatternTokenizer tokenizer)
           
protected  void open()
          Open the new log file for the date specified by dateStamp.
 
Methods inherited from class org.apache.catalina.valves.AccessLogValve
addLifecycleListener, backgroundProcess, createAccessLogElement, createAccessLogElement, findLifecycleListeners, getCondition, getDirectory, getEnabled, getEncoding, getFileDateFormat, getPattern, getPrefix, getSuffix, invoke, isBuffered, isCheckExists, isResolveHosts, isRotatable, log, log, removeLifecycleListener, rotate, setBuffered, setCheckExists, setCondition, setDirectory, setEnabled, setEncoding, setFileDateFormat, setPattern, setPrefix, setResolveHosts, setRotatable, setSuffix, start, stop
 
Methods inherited from class org.apache.catalina.valves.ValveBase
createObjectName, event, getContainer, getContainerName, getController, getDomain, getNext, getObjectName, getParentName, postDeregister, postRegister, preDeregister, preRegister, setContainer, setController, setNext, setObjectName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.catalina.Lifecycle
addLifecycleListener, findLifecycleListeners, removeLifecycleListener, start, stop
 

Field Detail

extendedAccessLogInfo

protected static final java.lang.String extendedAccessLogInfo
The descriptive information about this implementation.

See Also:
Constant Field Values
Constructor Detail

ExtendedAccessLogValve

public ExtendedAccessLogValve()
Method Detail

getInfo

public java.lang.String getInfo()
Return descriptive information about this implementation.

Specified by:
getInfo in interface Valve
Overrides:
getInfo in class AccessLogValve

open

protected void open()
Open the new log file for the date specified by dateStamp.

Overrides:
open in class AccessLogValve

createLogElements

protected AccessLogValve.AccessLogElement[] createLogElements()
Description copied from class: AccessLogValve
parse pattern string and create the array of AccessLogElement

Overrides:
createLogElements in class AccessLogValve

getLogElement

protected AccessLogValve.AccessLogElement getLogElement(java.lang.String token,
                                                        ExtendedAccessLogValve.PatternTokenizer tokenizer)
                                                 throws java.io.IOException
Throws:
java.io.IOException

getClientToServerElement

protected AccessLogValve.AccessLogElement getClientToServerElement(ExtendedAccessLogValve.PatternTokenizer tokenizer)
                                                            throws java.io.IOException
Throws:
java.io.IOException

getServerToClientElement

protected AccessLogValve.AccessLogElement getServerToClientElement(ExtendedAccessLogValve.PatternTokenizer tokenizer)
                                                            throws java.io.IOException
Throws:
java.io.IOException

getProxyElement

protected AccessLogValve.AccessLogElement getProxyElement(ExtendedAccessLogValve.PatternTokenizer tokenizer)
                                                   throws java.io.IOException
Throws:
java.io.IOException

getXParameterElement

protected AccessLogValve.AccessLogElement getXParameterElement(ExtendedAccessLogValve.PatternTokenizer tokenizer)
                                                        throws java.io.IOException
Throws:
java.io.IOException

getServletRequestElement

protected AccessLogValve.AccessLogElement getServletRequestElement(java.lang.String parameter)

Apache Tomcat 6.0.41

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