org.apache.catalina.valves
Class ExtendedAccessLogValve
java.lang.Object
   org.apache.catalina.valves.ValveBase
org.apache.catalina.valves.ValveBase
       org.apache.catalina.valves.AccessLogValve
org.apache.catalina.valves.AccessLogValve
           org.apache.catalina.valves.ExtendedAccessLogValve
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:
 
 - c-dns:  Client hostname
- c-ip:  Client ip address
- bytes:  bytes served
- cs-method:  request method
- cs-uri:  The full uri requested
- cs-uri-query:  The query string
- cs-uri-stem:  The uri without query string
- date:  The date in yyyy-mm-dd  format for GMT
- s-dns: The server dns entry
- s-ip:  The server ip address
- cs(XXX):  The value of header XXX from client to server
- sc(XXX): The value of header XXX from server to client
- sc-status:  The status code
- time:  Time the request was served
- time-taken:  Time (in seconds) taken to serve the request
- x-A(XXX): Pull XXX attribute from the servlet context
- x-C(XXX): Pull the first cookie of the name XXX
- x-O(XXX): Pull the all response header values XXX
- x-R(XXX): Pull XXX attribute from the servlet request
- x-S(XXX): Pull XXX attribute from the session
- x-P(...):  Call request.getParameter(...)
                             and URLencode it. Helpful to capture
                             certain POST parameters.
- For any of the x-H(...) the following method will be called from the
                HttpServletRequest object 
- x-H(authType): getAuthType
- x-H(characterEncoding): getCharacterEncoding
- x-H(contentLength): getContentLength
- x-H(locale):  getLocale
- x-H(protocol): getProtocol
- x-H(remoteUser):  getRemoteUser
- x-H(requestedSessionId): getRequestedSessionId
- x-H(requestedSessionIdFromCookie):
                  isRequestedSessionIdFromCookie
- x-H(requestedSessionIdValid):
                  isRequestedSessionIdValid
- x-H(scheme):  getScheme
- x-H(secure):  isSecure
 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 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 | extendedAccessLogInfoThe 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 | 
 
 
 
 
 
| 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 | 
 
 
extendedAccessLogInfo
protected static final java.lang.String extendedAccessLogInfo
- The descriptive information about this implementation.
 
- See Also:
- Constant Field Values
 
ExtendedAccessLogValve
public ExtendedAccessLogValve()
getInfo
public java.lang.String getInfo()
- Return descriptive information about this implementation.
 
- 
- Specified by:
- getInfoin interface- Valve
- Overrides:
- getInfoin class- AccessLogValve
 
- 
 
open
protected void open()
- Open the new log file for the date specified by dateStamp.
 
- 
- Overrides:
- openin class- AccessLogValve
 
- 
 
createLogElements
protected AccessLogValve.AccessLogElement[] createLogElements()
- Description copied from class: AccessLogValve
- parse pattern string and create the array of AccessLogElement
 
- 
- Overrides:
- createLogElementsin 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)
- 
 
- 
 
Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.