=========
Accesslog
=========

---------------------
Module: mod_accesslog
---------------------

:Author: Jan Kneschke
:Date: $Date: 2004/11/03 22:26:05 $
:Revision: $Revision: 1.2 $

:abstract:
  The accesslog module ...

.. meta::
  :keywords: lighttpd, accesslog, CLF

.. contents:: Table of Contents

Description
===========

CLF like by default, flexible like apache

Options
=======

accesslog.use-syslog
  send the accesslog to syslog

  Default: disabled

accesslog.filename
  name of the file where the accesslog should be written too if syslog
  is not used.

  if the name starts with a '|' the rest of the name is taken
  as the name of a process which will be spawn and will get the
  output

  e.g.: ::

    accesslog.filename = "/var/log/lighttpd.log"

    $HTTP["host"] == "mail.example.org" {
      accesslog.filename = "|/usr/bin/cronolog"
    }

  Default: disabled

accesslog.format
  the format of the logfile

  ====== ================================
  Option Description
  ====== ================================
  %%     a percent sign
  %h     name or address of remote-host
  %l     ident name (not supported)
  %u     authenticated user
  %t     timestamp for the request-start
  %r     request-line
  %s     status code
  %b     bytes sent for the body
  %i     HTTP-header field
  %a     remote address
  %A     local address
  %B     same as %b
  %C     cookie field (not supported)
  %D     time used in ms (not supported)
  %e     environment (not supported)
  %f     phyiscal filename
  %H     request protocol (HTTP/1.0, ...)
  %m     request method (GET, POST, ...)
  %n     (not supported)
  %o     `response header`_
  %p     server port
  %P     (not supported)
  %q     query string
  %T     time used in seconds
  %U     request URL
  %v     server-name
  %V     (not supported)
  %X     connection status
  %I     bytes incomming
  %O     bytes outgoing
  ====== ================================

  If %s is written %>s or %<s the < and the > are ignored. They are support
  for compat with apache.

  %i and %o expect the name of the field which should be written in curly brackets.

  e.g.: ::

    accesslog.format = "%h %l %u %t \"%r\" %b %>s \"%{User-Agent}i\" \"%{Referer}i\""

  Default: CLF compatible output

Response Header
---------------

The accesslog module provides a special way to log content from the
application in a accesslog file. It can be used to log the session id into a
logfile.

If you want to log it into the accesslog just specify the field-name within
a %{...}o like ::

  accesslog.format = "%h %l %u %t \"%r\" %b %>s \"%{User-Agent}i\" \"%{Referer}i\" \"%{X-LIGHTTPD-SID}o\""

The prefix ``X-LIGHTTPD-`` is special as every response header starting with
this prefix is assumed to be special for lighttpd and won't be sent out
to the client.

An example the use this functionality is provided below: ::

  <?php

  session_start();

  header("X-LIGHTTPD-SID: ".session_id());

  ?>

