<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:lighttpd.net:lighttpd2/doc1">
	<short>logs requests handled by lighttpd to files, pipes or syslog. The format of the logs can be customized using printf-style placeholders.</short>

	<option name="accesslog.format">
		<short>defines the log format</short>
		<parameter name="format" />
		<default><value>"%h %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""</value></default>
		<description>
			<textile><![CDATA[
				Some format specifiers take a mandatory key, enclosed in curly braces between percent sign and the actual specifier. CLF means "common log format", if a value is zero, a '-' is used instead.

				table(table table-striped).
				|_. specifier |_. description |
				| %% | Percent sign itself |
				| %a | Remote IP-address |
				| %A | Local IP-address|
				| %b | Size of response in bytes, excluding HTTP headers (CLF) |
				| %B | Size of response in bytes, excluding HTTP headers |
				| %{foobar}C | (*not implemented yet*) Contents of cookie @foobar@ of the request |
				| %D | Time taken to serve the request in microseconds |
				| %{foobar}e | Contents of the request environment variable @foobar@ |
				| %f | Path to physical file |
				| %h | Remote IP-address (same as @%a@) |
				| %{foobar}i | Contents of request header @foobar@ |
				| %m | Request method (GET, POST, etc) |
				| %{foobar}o | Contents of response header @foobar@ |
				| %p | Local port |
				| %q | Querystring |
				| %r | First line of request (GET /foo.html?bar HTTP/1.1) |
				| %s | Response status code |
				| %t | Time/date the request was received in standard english format |
				| %T | Time taken to serve the request in seconds |
				| %u | Authed user (from mod_auth). Same as @%{REMOTE_USER}e@ |
				| %U | Request path (not including querystring) |
				| %v | Server name as set through the @server.name@ option or the request hostname of @server.name@ is not set |
				| %V | Request hostname |
				| %X | Connection status after response: "X" if aborted before completed, "+" if keepalive, "-" if no keepalive |
				| %I | Bytes received including HTTP headers and request body |
				| %O | Bytes sent including HTTP headers and response body |

				Modifiers right after the percent sign like Apache provides them, are not supported. "<" or ">" are ignored, everything else results in a parse error. Specifiers supported by Apache but not lighty: %l, %n, %P
			]]></textile>
		</description>
		<example>
			<config>
				accesslog.format "%h %V %u %t \"%r\" %>s %b";
			</config>
		</example>
	</option>

	<option name="accesslog">
		<short>defines the log target</short>
		<parameter name="target" />
		<default><text>logging disabled</text></default>
		<description>
			<html>Enable logging by setting a log target. Supports the same log targets as <a href="plugin_clore.html#plugin_core__action_log">log</a>.</html>
		</description>
		<example>
			<config>
				setup {
					module_load "mod_accesslog";

					accesslog "/var/log/lighttpd/access.log";
				}
			</config>
		</example>
	</option>
</module>
