[APACHE DOCUMENTATION]

Apache HTTP Server Version 1.3

Fichiers de trace multiples

Il est désormais possible de spécifier plusieurs fichiers de trace, chacun sous un format entièrement configurable. Ceci reste compatible avec les configurations existantes. La fonctionnalité de fichiers de trace multiples est implémententée dans le module mod_log_config qui est le module de trace par défaut de la version 1.2 d'Apache.

Utilisation de plusieurs fichiers de trace

Les multiples fichiers de trace peuvent être créés par la directive TransferLog ou la directive CustomLog. Ces directives peuvent être répétées plusieurs fois pour créer autant de fichiers de trace que nécessaire (dans les versions antérieures, un seul fichier de trace pouvait être ouvert par configuration du serveur). La directive TransferLog crée un fichier de trace au format "common log format" (standard), bien que ce format puisse aussi être adapté via la directive LogFormat. La syntaxe de ces deux directives reste identique à celle décrite pour les versions antérieures d'Apache.

Le véritable avantage de pouvoir utiliser plusieurs fichiers de trace est de pouvoir être en mesure de générer des traces sous des formats distincts. Par exemple, en même temps qu'une trace CLF (Common Log Format) est faite, le serveur pourra tracer à part la nature des agents clients, et/ou les informations concernant la position du lien (Referrer), ou tout autre aspect de la requête, tel que les préférences de langue de l'utilisateur.

La nouvelle directive CustomLog accepte comme paramètres un fichier cible où enregistrer la trace, ainsi qu'un descripteur de format.


Syntaxe : CustomLog nomFichier "format"
Contexte : configuration serveur, hôte virtuel
Statut : base
Module : mod_log_config

Le premier argument précise le fichier dans lequel enregistrer la trace. Ce paramètre est à l'identique de l'argument de la directive TransferLog, c'est-à-dire que cela peut être un fichier défini par un chemin d'accès absolu, ou relativement à la racine courante du serveur, ou encore une expression |nomProgramme. Souvenez-vous que quiconque peut écrire dans le répertoire de trace peut avoir accès à l'UID de l'utilisateur ayant démarré le serveur. Voir la page Discussion sur la configuration rapport à la sécurité pour plus de détails.

L'argument de format spécifie un format pour chaque enregistrement dans la trace. Les options de formatage disponibles sont les mêmes que celles utilisées pour l'argument de la directive LogFormat. Si le format inclue des espaces (ce qui sera pratiquement toujours le cas) l'expression entière spécifiant le format devra être mise entre guillemets.

Utilisation avec des hôtes virtuels

Si une section <VirtualHost> ne contient aucune directive TransferLog ni CustomLog, les traces définies au niveau du serveur principal seront utilisées. Si elle contient par contre une ou plusieurs de ces directives, les requêtes servies par cet hôte virtuel ne seront tracées que dans les fichiers de traces qui y sont définis ; elles n'apparaîtront donc pas dans aucune des traces associées au serveur principal. Voir les exemples ci-dessous.


Exemples

Pour créer un fichier de trace au format standard (CLF) dans le répertoire logs/access_log, ainsi qu'une trace des agents utilisateurs :
TransferLog logs/access_log
CustomLog   logs/agents     "%{user-agent}i"
Pour définir un fichier de trace au format standard et une trace des "referrer" qui enregistrent tous les accès à la fois au serveur principal et à un hôte virtuel :
TransferLog logs/access_log
CustomLog   logs/referer    "%{referer}i"

<VirtualHost>
  DocumentRoot   /whatever
  ServerName     my.virtual.host
</VirtualHost>
Comme aucune directive TransferLog ni CustomLog apparaissent à l'intérieur de la section <VirtualHost>, toute requête dirigée vers l'hôte virtuel sera enregistrée dans les fichiers de trace du serveur principal. Si jamais la directive
TransferLog logs/vhost_access_log
était à joutée à la définition de l'hôte virtuel, alors les accès à cet hôte seraient tracés dans le fichier vhost_access_log file (au format CLF), et non plus dans le fichier logs/access_log ou logs/referer.

Apache HTTP Server Version 1.3

Index

Version française © Valery Fremaux / EISTI 1998