Interface AccessLog

All Known Implementing Classes:
AbstractAccessLogValve, AccessLogAdapter, AccessLogValve, ExtendedAccessLogValve, JDBCAccessLogValve, JsonAccessLogValve, StandardEngine.NoopAccessLog

public interface AccessLog
Intended for use by a Valve to indicate that the Valve provides access logging. It is used by the Tomcat internals to identify a Valve that logs access requests so requests that are rejected earlier in the processing chain can still be added to the access log. Implementations of this interface should be robust against the provided Request and Response objects being null, having null attributes or any other 'oddness' that may result from attempting to log a request that was almost certainly rejected because it was mal-formed.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Name of request attribute used to override the protocol recorded by the AccessLog.
    static final String
    Name of request attribute used to override the remote address recorded by the AccessLog.
    static final String
    Name of request attribute used to override remote host name recorded by the AccessLog.
    static final String
    Name of request attribute used to override the server name recorded by the AccessLog.
    static final String
    Name of request attribute used to override the server port recorded by the AccessLog.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    void
    log(Request request, Response response, long time)
    Add the request/response to the access log using the specified processing time.
    void
    setRequestAttributesEnabled(boolean requestAttributesEnabled)
    Should this valve use request attributes for IP address, hostname, protocol and port used for the request?
  • Field Details

    • REMOTE_ADDR_ATTRIBUTE

      static final String REMOTE_ADDR_ATTRIBUTE
      Name of request attribute used to override the remote address recorded by the AccessLog.
      See Also:
    • REMOTE_HOST_ATTRIBUTE

      static final String REMOTE_HOST_ATTRIBUTE
      Name of request attribute used to override remote host name recorded by the AccessLog.
      See Also:
    • PROTOCOL_ATTRIBUTE

      static final String PROTOCOL_ATTRIBUTE
      Name of request attribute used to override the protocol recorded by the AccessLog.
      See Also:
    • SERVER_NAME_ATTRIBUTE

      static final String SERVER_NAME_ATTRIBUTE
      Name of request attribute used to override the server name recorded by the AccessLog.
      See Also:
    • SERVER_PORT_ATTRIBUTE

      static final String SERVER_PORT_ATTRIBUTE
      Name of request attribute used to override the server port recorded by the AccessLog.
      See Also:
  • Method Details

    • log

      void log(Request request, Response response, long time)
      Add the request/response to the access log using the specified processing time.
      Parameters:
      request - Request (associated with the response) to log
      response - Response (associated with the request) to log
      time - Time taken to process the request/response in nanoseconds (use 0 if not known); in Tomcat versions prior to 10, the time unit was milliseconds
    • setRequestAttributesEnabled

      void setRequestAttributesEnabled(boolean requestAttributesEnabled)
      Should this valve use request attributes for IP address, hostname, protocol and port used for the request? The attributes used are:
      • org.apache.catalina.RemoteAddr
      • org.apache.catalina.RemoteHost
      • org.apache.catalina.Protocol
      • org.apache.catalina.ServerName
      • org.apache.catalina.ServerPost
      Parameters:
      requestAttributesEnabled - true causes the attributes to be used, false causes the original values to be used.
    • getRequestAttributesEnabled

      boolean getRequestAttributesEnabled()
      Returns:
      true if the attributes will be logged, otherwise false
      See Also: