Table des matières

,

Access.log : fichier journal de Lighty

Cette page est ma traduction de la page de la documentation du module mod_accesslog.

Options

accesslog.use-syslog
envoyer l'accesslog à syslog
par défaut : disabled
accesslog.syslog-level
niveau de gravité pour la journalisation syslog
Voir http://en.wikipedia.org/wiki/Syslog#Severity_levels
pour les valeurs numériques
par défaut : 6 (info)
accesslog.filename
nom du fichier d'accesslog si syslog n'est pas utilisé
si le nom commence par un '|', le reste du nom est considéré comme le nom d'un processus qui sera créé et donnera la sortie
par ex.
accesslog.filename = "/var/log/lighttpd.log" 

    $HTTP["host"] == "mail.example.org" {
      accesslog.filename = "|/usr/bin/cronolog"
    }
si vous avez plusieurs utilisateurs et que vous voulez que tous les journaux d'accès soient écrits, utilisez
accesslog.filename = "\|/usr/sbin/cronolog.."
par défaut : disabled
accesslog.format
par défaut : format du fichier journal

Format du fichier journal

%%
caractère %
%h
nom ou adresse de l'hôte à distance
retourne toujours l'adresse IP de l'hôte, jamais le nom.
Donc équivalent à %a, qui n'est pas implémenté
%u
utilisateur authentifié
%t
heure de fin de la demande
%r
demande en ligne
%s
code d'état (= %>s = %<s : compatibilité avec apache)
%b ou %B
octets envoyés pour le body
%i
Champ en-tête HTTP
attend le nom du champ qui doit être écrit entre accolades.
%e
environnement
%f
nom de fichier physique
%H
protocole de requête (HTTP/1.0, …)
%m
méthode de demande (GET, POST, …)
%o
`en-tête de réponse`_
attend le nom du champ qui doit être écrit entre accolades.
%p
port du serveur
%q
chaîne de requête
(%q n'est pas précédé d'un “?”, contrairement à Apache)
%T
temps utilisé en secondes
%U
URL de la requête
%v
nom du serveur
%V
nom d'hôte de la demande HTTP
%X
état de la connexion
%I
octets entrants
%O
octets sortants

Non supportés :

Option Description
%aadresse à distance
%Aadresse locale
%Cchamp cookie (NS)
%lnom ident (non pris en charge)
%Dtemps utilisé en ms (non pris en charge)
%P(NS)
%n(NS)
%{name}C(NS)

Valeur par défaut :

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

La différence avec Apache est le deuxième champ qui vaut %V au lieu de %l.

En-tête de la réponse

Le module accesslog provides a special way to log content from the application in a accesslog file.

Pour noter l'identifiant de session dans le fichier de log accesslog il suffit de spécifier le nom de champ dans un %{…}o comme :

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

Chaque en-tête de réponse commençant par le préfixe X-LIGHTTPD- est supposé spécial pour lighttpd et ne sera pas envoyé au client.

Voici un exemple de l'utilisation de cette fonctionnalité :

<?php

session_start();

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

If you log to a pipe and have lighty chrooted the user running lighty will need access to “/bin/sh”.

Voir aussi

Basé sur http://redmine.lighttpd.net/projects/1/wiki/Docs_ModAccessLog de la documentation.