public class ExtendedAccessLogValve extends AccessLogValve
c-dns: Client hostname (or ip address if enableLookups for the connector is false)c-ip: Client ip addressbytes: bytes servedcs-method: request methodcs-uri: The full uri requestedcs-uri-query: The query stringcs-uri-stem: The uri without query stringdate: The date in yyyy-mm-dd format for GMTs-dns: The server dns entrys-ip: The server ip addresscs(XXX): The value of header XXX from client to serversc(XXX): The value of header XXX from server to clientsc-status: The status codetime: Time the request was servedtime-taken: Time (in seconds) taken to serve the requestx-threadname: Current request thread name (can compare later with stacktraces)x-A(XXX): Pull XXX attribute from the servlet contextx-C(XXX): Pull the cookie(s) of the name XXXx-O(XXX): Pull the all response header values XXXx-R(XXX): Pull XXX attribute from the servlet requestx-S(XXX): Pull XXX attribute from the sessionx-P(...): Call request.getParameter(...) and URLencode it. Helpful to capture certain POST
parameters.x-H(authType): getAuthTypex-H(characterEncoding): getCharacterEncodingx-H(contentLength): getContentLengthx-H(locale): getLocalex-H(protocol): getProtocolx-H(remoteUser): getRemoteUserx-H(requestedSessionId): getRequestedSessionIdx-H(requestedSessionIdFromCookie): isRequestedSessionIdFromCookiex-H(requestedSessionIdValid): isRequestedSessionIdValidx-H(scheme): getSchemex-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.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
ExtendedAccessLogValve.CookieElement |
protected static class |
ExtendedAccessLogValve.DateElement |
protected static class |
ExtendedAccessLogValve.PatternTokenizer |
protected static class |
ExtendedAccessLogValve.RequestAttributeElement |
protected static class |
ExtendedAccessLogValve.RequestHeaderElement |
protected static class |
ExtendedAccessLogValve.RequestParameterElement |
protected static class |
ExtendedAccessLogValve.ResponseAllHeaderElement
write a specific response header - x-O(xxx)
|
protected static class |
ExtendedAccessLogValve.ResponseHeaderElement |
protected static class |
ExtendedAccessLogValve.ServletContextElement |
protected static class |
ExtendedAccessLogValve.SessionAttributeElement |
protected static class |
ExtendedAccessLogValve.TimeElement |
AbstractAccessLogValve.AccessLogElement, AbstractAccessLogValve.ByteSentElement, AbstractAccessLogValve.CachedElement, AbstractAccessLogValve.ConnectionStatusElement, AbstractAccessLogValve.DateAndTimeElement, AbstractAccessLogValve.DateFormatCache, AbstractAccessLogValve.ElapsedTimeElement, AbstractAccessLogValve.FirstByteTimeElement, AbstractAccessLogValve.HeaderElement, AbstractAccessLogValve.HostElement, AbstractAccessLogValve.HttpStatusCodeElement, AbstractAccessLogValve.LocalAddrElement, AbstractAccessLogValve.LocalServerNameElement, AbstractAccessLogValve.LogicalUserNameElement, AbstractAccessLogValve.MethodElement, AbstractAccessLogValve.PortElement, AbstractAccessLogValve.ProtocolElement, AbstractAccessLogValve.QueryElement, AbstractAccessLogValve.RemoteAddrElement, AbstractAccessLogValve.RequestElement, AbstractAccessLogValve.RequestURIElement, AbstractAccessLogValve.SessionIdElement, AbstractAccessLogValve.StringElement, AbstractAccessLogValve.ThreadNameElement, AbstractAccessLogValve.UserElementLifecycle.SingleUsecurrentLogFile, encoding, fileDateFormat, fileDateFormatter, prefix, renameOnRotate, rotatable, suffix, writercachedElements, condition, conditionIf, enabled, locale, localeName, logElements, pattern, requestAttributesEnabledasyncSupported, container, containerLog, next, smmserverPROTOCOL_ATTRIBUTE, REMOTE_ADDR_ATTRIBUTE, REMOTE_HOST_ATTRIBUTE, SERVER_NAME_ATTRIBUTE, SERVER_PORT_ATTRIBUTEAFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT| Constructor and Description |
|---|
ExtendedAccessLogValve() |
backgroundProcess, getDirectory, getEncoding, getFileDateFormat, getMaxDays, getPrefix, getSuffix, isBuffered, isCheckExists, isRenameOnRotate, isRotatable, log, rotate, rotate, setBuffered, setCheckExists, setDirectory, setEncoding, setFileDateFormat, setMaxDays, setPrefix, setRenameOnRotate, setRotatable, setSuffix, startInternal, stopInternalcreateAccessLogElement, createAccessLogElement, escapeAndAppend, findLocale, getCondition, getConditionIf, getConditionUnless, getEnabled, getIpv6Canonical, getLocale, getMaxLogMessageBufferSize, getPattern, getRequestAttributesEnabled, invoke, log, setCondition, setConditionIf, setConditionUnless, setEnabled, setIpv6Canonical, setLocale, setMaxLogMessageBufferSize, setPattern, setRequestAttributesEnabledgetContainer, getDomainInternal, getNext, getObjectNameKeyProperties, initInternal, isAsyncSupported, setAsyncSupported, setContainer, setNext, toStringdestroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregisteraddLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stopprotected void open()
dateStamp.open in class AccessLogValveprotected AbstractAccessLogValve.AccessLogElement[] createLogElements()
AbstractAccessLogValvecreateLogElements in class AbstractAccessLogValveprotected AbstractAccessLogValve.AccessLogElement getLogElement(java.lang.String token, ExtendedAccessLogValve.PatternTokenizer tokenizer) throws java.io.IOException
java.io.IOExceptionprotected AbstractAccessLogValve.AccessLogElement getClientToServerElement(ExtendedAccessLogValve.PatternTokenizer tokenizer) throws java.io.IOException
java.io.IOExceptionprotected AbstractAccessLogValve.AccessLogElement getServerToClientElement(ExtendedAccessLogValve.PatternTokenizer tokenizer) throws java.io.IOException
java.io.IOExceptionprotected AbstractAccessLogValve.AccessLogElement getProxyElement(ExtendedAccessLogValve.PatternTokenizer tokenizer) throws java.io.IOException
java.io.IOExceptionprotected AbstractAccessLogValve.AccessLogElement getXParameterElement(ExtendedAccessLogValve.PatternTokenizer tokenizer) throws java.io.IOException
java.io.IOExceptionprotected AbstractAccessLogValve.AccessLogElement getServletRequestElement(java.lang.String parameter)
Copyright © 2000-2024 Apache Software Foundation.
Apache Tomcat, Tomcat, Apache, the Apache Tomcat logo and the Apache logo are either registered trademarks or trademarks of the Apache Software Foundation.