java.lang.Object
org.glassfish.grizzly.http.server.accesslog.ApacheLogFormat
All Implemented Interfaces:
AccessLogFormat

public class ApacheLogFormat extends Object implements AccessLogFormat
An AccessLogFormat using a standard vaguely similar and heavily influenced by Apache's own custom access log formats.

As with Apache, the format string specified at construction should be composed of these tokens:

%% The literal percent sign (can also be escaped with back-slash, like "\%"
%a Remote IP-address
%A Local IP-address
%b Size of response in bytes, excluding HTTP headers, using "-" (a dash character) rather than a "0" (zero) when no bytes are sent
%B Size of response in bytes, excluding HTTP headers
%{Foobar}C The contents of cookie "Foobar" in the request sent to the server
%D The time taken to serve the request, in microseconds
%h Remote host name
%{local|remote}h Host name, either "local" or "remote"
%H The request protocol
%{Foobar}i The contents of the "Foobar: ..." header in the request
%m The request method
%{Foobar}o The contents of the "Foobar: ..." header in the response
%p Local port number
%{local|remote}p The port number, either "local" or "remote"
%q The query string, prepended with a "?" (question mark) if a query string exists, otherwise an empty string
%r First line of request, an alias to "%m %U%q %H"
%s Status code
%t The time the request was received, in standard English format (like "[09/Feb/2014:12:00:34 +0900]")
%{[format][@timezone]}t The time the request was received. Both format and timezone are optional
  • When "format" is left unspecified, the default %t format [yyyy/MMM/dd:HH:mm:ss Z] is used
  • When "format" is specified, the given pattern must be a valid SimpleDateFormat pattern.
  • When "@timezone" is left unspecified, the default time zone is used.
  • When "@timezone" is specified, the time zone will be looked up by time zone identifier (note that this will default to GMT if the specified identifier was not recognized).
When the "@" character needs to be used in the format, it must be escaped as "@@"
%T The time taken to serve the request, in seconds
%{...}T The time taken to serve the request. The parameter can be a time unit like:
  • "n", "nano[s]", "nanosec[s]", "nanosecond[s]"
  • "micro[s]", "microsec[s]", "microsecond[s]"
  • "m", "milli[s]", "millisec[s]", "millisecond[s]"
  • "s", "sec[s]", "second[s]"
%u The remote user name
%U The URL path requested, not including any query string
%v The name of the server which served the request
Author:
Pier Fumagalli, USRZ.com
  • Field Details

    • COMMON_FORMAT

      public static final String COMMON_FORMAT
      A String representing our version of Apache's common format.
      See Also:
    • COMBINED_FORMAT

      public static final String COMBINED_FORMAT
      A String representing our version of Apache's combined format.
      See Also:
    • VHOST_COMMON_FORMAT

      public static final String VHOST_COMMON_FORMAT
      A String representing our version of Apache's common with virtual-hosts format.
      See Also:
    • VHOST_COMBINED_FORMAT

      public static final String VHOST_COMBINED_FORMAT
      A String representing our version of Apache's combined with virtual-hosts format.
      See Also:
    • REFERER_FORMAT

      public static final String REFERER_FORMAT
      A String representing our version of Apache's referer format.
      See Also:
    • AGENT_FORMAT

      public static final String AGENT_FORMAT
      A String representing our version of Apache's user-agent format.
      See Also:
    • COMMON

      public static final ApacheLogFormat COMMON
      A format compatible with Apache's common format.
    • COMBINED

      public static final ApacheLogFormat COMBINED
      A format compatible with Apache's combined format.
    • VHOST_COMMON

      public static final ApacheLogFormat VHOST_COMMON
      A format compatible with Apache's common with virtual-hosts format.
    • VHOST_COMBINED

      public static final ApacheLogFormat VHOST_COMBINED
      A format compatible with Apache's combined with virtual-hosts format.
    • REFERER

      public static final ApacheLogFormat REFERER
      A format compatible with Apache's referer format.
    • AGENT

      public static final ApacheLogFormat AGENT
      A format compatible with Apache's user-agent format.
    • COMMON_UTC

      public static final ApacheLogFormat COMMON_UTC
      A format compatible with Apache's common format set to use the UTC time zone.
    • COMBINED_UTC

      public static final ApacheLogFormat COMBINED_UTC
      A format compatible with Apache's combined format set to use the UTC time zone.
    • VHOST_COMMON_UTC

      public static final ApacheLogFormat VHOST_COMMON_UTC
      A format compatible with Apache's common with virtual-hosts format set to use the UTC time zone.
    • VHOST_COMBINED_UTC

      public static final ApacheLogFormat VHOST_COMBINED_UTC
      A format compatible with Apache's combined with virtual-hosts format set to use the UTC time zone.
    • REFERER_UTC

      public static final ApacheLogFormat REFERER_UTC
      A format compatible with Apache's referer format set to use the UTC time zone.
    • AGENT_UTC

      public static final ApacheLogFormat AGENT_UTC
      A format compatible with Apache's user-agent format set to use the UTC time zone.
  • Constructor Details

  • Method Details

    • format

      public String format(Response response, Date timeStamp, long responseNanos)
      Description copied from interface: AccessLogFormat
      Format the data contained in the specified Response and return a String which can be appended to an access log file.
      Specified by:
      format in interface AccessLogFormat
      Parameters:
      response - The Response holding the data to format.
      timeStamp - The Date at which the request was originated.
      responseNanos - The time, in nanoseconds, the Response took to complete.
    • getFormat

      public String getFormat()
      Return the normalized format associated with this instance.