mod_log_config.c
, et est compilé par défaut dans la version 1.1 d'Apache. Le module mod_log_config remplace le module mod_log_common à partir de la version 1.2. Avant la version 1.2, mod_log_config était un module optionnel. Il permet l'enregistrement de la trace des requêtes reçues par le serveur, sous le format Common Log Format, ou un format personnalisé par l'administrateur.
TransferLog
pour créer un fichier de trace, LogFormat
pour définir un format personnalisé,
et CustomLog
pour définir à la fois un fichier de trace et un format personnalisé en une seule opération.
Les directives TransferLog
et CustomLog
peuvent être utilisées plusieurs fois dans chaque définition de serveur pour obliger la requête a être tracée dans plusieurs fichiers différents (éventuellement sous plusieurs formats différents).
CookieLog
, pour tracer les informations de suivi d'utilisateur mises en oeuvre par le module mod_usertrack. L'utilisation de CookieLog
est obsolète, et il vaudra mieux définir un fichier de trace CustomLog
pour tracer ces informations.
LogFormat
et CustomLog
.
hôte identité utilisateur_authentifié date requête etat volumeLorsqu'un token n'a pas de valeur particulière, alors il est réduit à un tiret (-). La signification et les valeurs typiques de cs tokens sont les suivantes :
date = [jour/mois/an:heure:minute:seconde zone]
jour = 2*digit
mois = 3*lettre
an = 4*digit
heure = 2*digit
minute = 2*digit
seconde = 2*digit
zone = (`+' | `-') 4*digit
"
).
LogFormat
et CustomLog
est une chaîne de caractères. Cette chaîne est enregistrée dans le fichier de trace pour chaque requête arrivant au serveur. Elle peut contenir des caractères litéraux copiés dans les fichiers de trace, et des expressions variables (précédées de '%') remplacées au moment de l'écriture de l'enregistrement par les valeurs correspondantes :
%...b: Octets envoyés, non comptées les en-têtes HTTP. %...f: Nom de fichier %...{FOOBAR}e: Le contenu de la variable d'environnement FOOBAR %...h: L'hôte distant %...{Foobar}i: Le contenu du champ d'en-tête Foobar: de la requête reçue par le serveur. %...l: Identité distante (à partir de identd, si fournie) %...{Foobar}n: Le conteu d'une note "Foobar" d'un autre module. %...{Foobar}o: Le contenu du champ d'en-tête Foobar: dans la réponse. %...p: Le port sur lequel la requête a été servie. %...P: Le PID du processus fils qui a servi la requête. %...r: La première ligne de la requête %...s: Code HTTP. Pour les requêtes redirigées en interne, soit le code pour la requête *originale* --- %...>s pour la dernière redirection. %...t: Temps, au format CLF %...{format}t: Temps, selon le format spécifié conformément à la syntaxe de la fonction C UNIX strftime(3). %...T: Le temps mis pour servir la requête, en secondes. %...u: Utilisateur distant (à partir de données d'authentification. Peut être vide si (%s) vaut 401) %...U: L'URL requise. %...v: Le nom du serveur (c-à-d. quel hôte virtuel ?)La partie '...' peut être vide (ex.
"%h %u %r %s %b"
), ou préciser les conditions pour lesquelles l'information pourra être enregistrée (ce champ sera remplacé par '-' si ces conditions ne sont pas remplies). Notez qu'aucun caractère d'échappement n'est utilisé dans les chaînes %r, %...i et %...o ; ceux qui ont suivi le développement se souviendront qu'il semblait que ce soit une mauvaise idée à l'époque, et ce n'est pas encore ce quisemble le plus confortable, mais il est difficiel de trouver la méthode idéale pour tous les of `%..i', sauf si nous encodons tout à la mode URL, quitte à perdre la cohérence avec le format CLF.
Le format dans lequel sont exprimées les conditions est une liste de codes de réponse HTTP, qui peuvent éventuellement être précédés d'un signe '!' de négation. Ainsi, %400,501{User-agent}i
provoquera l'enregistrement du champ d'en-tête User-agent: sur erreur de type 400 et 501 (Requête erronée, Non implémenté) uniquement ; %!200,304,302{Referer}i
enregistre le champ Referer: pour toues les requêtes auxquelles est répondu un code de réponse autre qu'une réponse normale.
Notez que le Common Log Format est représenté par la chaîne "%h %l
%u %t \"%r\" %s %b"
, laquelle peut servir de base de départ si vous désirez personnaliser votre trace (ex. en ajoutant des champs supplémentaires à la fin). Le format de trace combiné/étendu de ttpe NCSA serait représenté par la chaîne "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""
.
TransferLog
et CustomLog
peuvent apparaître plus d'une fois afin de tracer les requêtes dans plusieurs fichiers sous des formats différents. Chaque requête sera enregistrée dans chacun de ces fichiers dansle format associé à chacune des directives correspondantes.
La directive CookieLog définit le nom du fichier trace pour les cookies. Ce nom est exprimé relativement à la racine ServerRoot. Cette directive n'est inclue que pour assurer la compatibilité avec le module mod_cookies, et est obsolète.
Le premier argument est le nom de fichier de trace. Il est défini exactement comme l'argument de la directive TransferLog ; c'est-à-dire, comme un chemin absolu, ou relatif par rapport à la racine serveur courante.
L'aegument format
spécifie le format dans lequel les lignes d'enregistrement seront écrites. Les options disponibles pour le format sont exactement les mêmes que pour la directive LogFormat. Si le format inclue des espaces litéraux, (ce qui sera pratiquement toujours le cas) alors la chaîne entière devra être mise entre apostrophes.
A partir de la version 1.3 d'Apache, vous pouvez remplacer l'expression exhaustive du format par un identificateur (un raccourci), lequel aura été défini par une directive LogFormat.
LogFormat "%h %l %u %t \"%r\"
%s %b"
Définit le format du fichier de trace par défaut spécifié dans la directive TransferLog. Voir la section sur les formats personnalisés pour plus de détails sur les arguments de l'attribut de format.
Si vous précisez un raccourci pour ce format, vous pourrez spécifier ce format par ce raccourci dans d'autres directives LogFormat ou CustomLog plutôt que réécrire toute la chaîne de description.
Une directive LogFormat qui définit un raccourci n'a aucune autre fonction -- c'est-à-dire, elle ne fait que définir le raccourci, sans appliquer le format à quoi que ce soit, ni l'attribuer au défaut.
La directive TransferLog ajoute la définition d'un fichier de trace sous un format défini par la directive LogFormat la plus récente, ou Common Log Format si aucun autre format par défaut n'a été spécifié.
Fichier-tube est soit :
root
si le serveur a été démarré sous root ; assurez-vous que ce programme est sûr.