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 %a adresse à distance %A adresse locale %C champ cookie (NS) %l nom ident (non pris en charge) %D temps 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.