Access log handler. This handler will generate access log messages based on the provided format string, and pass these messages into the provided {@link AccessLogReceiver}.
This handler can log any attribute that is provides via the {@link io.undertow.attribute.ExchangeAttribute}mechanism. A general guide to the most common attribute is provided before, however this mechanism is extensible.
This factory produces token handlers for the following patterns
- %a - Remote IP address
- %A - Local IP address
- %b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent
- %B - Bytes sent, excluding HTTP headers
- %h - Remote host name
- %H - Request protocol
- %l - Remote logical username from identd (always returns '-')
- %m - Request method
- %p - Local port
- %q - Query string (prepended with a '?' if it exists, otherwise an empty string
- %r - First line of the request
- %s - HTTP status code of the response
- %t - Date and time, in Common Log Format format
- %u - Remote user that was authenticated
- %U - Requested URL path
- %v - Local server name
- %D - Time taken to process the request, in millis
- %T - Time taken to process the request, in seconds
- %I - current Request thread name (can compare later with stacktraces)
In addition, the caller can specify one of the following aliases for commonly utilized patterns:
- common -
%h %l %u %t "%r" %s %b
- combined -
%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"
There is also support to write information from the cookie, incoming header, or the session
It is modeled after the apache syntax:
%{i,xxx}
for incoming headers %{o,xxx}
for outgoing response headers %{c,xxx}
for a specific cookie %{r,xxx}
xxx is an attribute in the ServletRequest %{s,xxx}
xxx is an attribute in the HttpSession
@author Stuart Douglas