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.
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.
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.
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.
Version française © Valery Fremaux / EISTI 1998