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
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
  • %{StrFTime chaîne de format}t est supporté.

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.