Project

General

Profile

Mod accesslog » History » Revision 14

Revision 13 (Anonymous, 2008-01-26 11:51) → Revision 14/48 (Anonymous, 2008-03-13 13:33)

[[TracNav(DocsToc)]] 
 {{{ 
 #!rst 
 ========= 
 Accesslog 
 ========= 

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

 .. 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 to 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 spawned and will get the 
   output 
  
   e.g.: :: 
  
     accesslog.filename = "/var/log/lighttpd.log" 
    
     $HTTP["host"] == "mail.example.org" { 
       accesslog.filename = "|/usr/bin/cronolog" 
     } 

   if you have multiple workers on 1.4.x (now, the current version) 
   and want all access logs to be written (without that, only one worker will write logs), use  
   the accesslog.filename = "\|/usr/sbin/cronolog.. (as a temporary solution) 
    
   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       physical 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       HTTP request host name 
   %X       connection status 
   %I       bytes incomming 
   %O       bytes outgoing 
   ====== ================================ 
  
   If %s is written %>s or %<s the < and the > are ignored. They are supported 
   for compatibility with apache.  

   %h will always return the IP address of the host, never the name. This makes it equivalent to %a, which is not implemented. 

   %a, %A, %{name}C, %D and %e are all unimplemented as of 1.4.18 and 1.5.0-r1922 
  
   %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 \"%{Referer}i\" \"%{User-Agent}i\"" 
  
   Default: CLF compatible output.    Format from 1.4.13 source: ``"%h %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""``    The difference between Apache's CLF is the second field changes from ``%l`` to ``%V``. 

 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 \"%{Referer}i\" \"%{User-Agent}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()); 
  
   ?> 
   TEST 

 


 }}}