<-
Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

Module Apache mod_log_config

Langues Disponibles:  en  |  fr  |  ja  |  ko  |  tr 

Description:Journalisation des requêtes envoyées au serveur
Statut:Base
Identificateur de Module:log_config_module
Fichier Source:mod_log_config.c

Sommaire

Ce module apporte une grande souplesse dans la journalisation des requêtes des clients. Les journaux sont écrits sous un format personnalisable, et peuvent être enregistrés directement dans un fichier, ou redirigés vers un programme externe. La journalisation conditionnelle est supportée, si bien que des requêtes individuelles peuvent être incluses ou exclues des journaux en fonction de leur caractéristiques.

Ce module fournit trois directives : TransferLog crée un fichier journal, LogFormat définit un format personnalisé, et CustomLog définit un fichier journal et un format en une seule étape. Pour journaliser les requêtes dans plusieurs fichiers, vous pouvez utiliser plusieurs fois les directives TransferLog et CustomLog dans chaque serveur.

Support Apache!

Sujets

Directives

Traitement des bugs

Voir aussi

top

Formats de journaux personnalisés

L'argument format des directives LogFormat et CustomLog est une chaîne de caractères. Cette chaîne définit le format de la journalisation des requêtes dans le fichier journal. Elle peut contenir des caractères littéraux qui seront reproduits dans le fichier journal, et les caractères de contrôle de style C "\n" et "\t" représentant respectivement une nouvelle ligne et une tabulation. Les guillemets et les anti-slashes littéraux doivent être échappés à l'aide d'anti-slashes.

Les caractéristiques de la requête en elle-même sont journalisées en insérant des directives "%" dans la chaîne de format, celles-ci étant remplacées dans le fichier journal par certaines valeurs comme suit :

Chaîne de format Description
%% Le signe "pourcentage"
%a L'adresse IP distante (voir le module mod_remoteip).
%{c}a Adresse IP distante de la connexion(voir le module mod_remoteip)
%A L'adresse IP locale
%B La taille de la réponse en octets, en excluant les en-têtes HTTP.
%b La taille de la réponse en octets, en excluant les en-têtes HTTP. Au format CLF , c'est à dire un '-' à la place d'un 0 lorsqu'aucun octet n'est renvoyé.
%{NOMVAR}C Le contenu du cookie NOMVAR dans la requête envoyée au serveur. Seuls les cookies version 0 sont pleinement supportés.
%D Le temps mis à servir la requête, en microsecondes.
%{NOMVAR}e Le contenu de la variable d'environnement NOMVAR
%f Nom de fichier
%h Serveur distant. Contiendra l'adresse IP si la directive HostnameLookups est définie à Off, ce qui est sa valeur par défaut. Si cette adresse IP n'est enregistrée que pour certains serveurs, vous avez probablement défini des directives de contrôle d'accès qui mentionnent ces derniers par leurs noms. Voir la documentation de Require host.
%H Le protocole de la requête
%{NOMVAR}i Le contenu des lignes d'en-tête NOMVAR: dans la requête envoyée au serveur. Ces en-têtes sont ajoutés par d'autres modules (par exemple mod_headers). Si vous êtes intéressé par ce qu'était l'en-tête de la requête avant d'être modifié par la plupart des modules, utilisez mod_setenvif pour copier l'en-tête dans une variable d'environnement interne et journaliser sa valeur via le champ %{VARNAME}e décrit plus haut.
%k Nombre de requêtes persistantes en cours pour cette connexion. Interessant si la directive KeepAlive est utilisée ; par exemple, '1' signifie la première requête après la requête initiale, '2' la seconde, etc... ; autrement, il s'agit toujours de 0 (indiquant la requête initiale).
%l Le nom de connexion distant (en provenance d'identd, si disponible). Affiche un tiret, sauf si mod_ident est présent et si IdentityCheck est à On.
%L L'identifiant du message de journalisation de la requête dans le journal des erreurs (ou '-' si aucun message n'a été enregistré dans le journal des erreurs pour cette requête)
%m La méthode de la requête
%{NOMVAR}n Le contenu de la note NOMVAR en provenance d'un autre module.
%{NOMVAR}o Le contenu de la ligne d'en-tête NOMVAR: de la réponse.
%p Le port canonique du serveur servant la requête
%{format}p Le port canonique du serveur servant la requête ou le véritable port du serveur ou le véritable port du client. les formats valides sont canonical, local, ou remote.
%P Le numéro de processus du processus enfant qui a servi la requête.
%{format}P Le numéro de processus ou le numéro de thread du processus enfant qui a servi la requête. Les formats valides sont pid, tid, et hextid. hextid nécessite APR version 1.2.0 ou supérieure.
%q La chaîne d'arguments (préfixée par un ? si une chaîne d'arguments existe, sinon une chaîne vide)
%r La première ligne de la requête
%R Le gestionnaire qui génère la réponse (s'il y en a un).
%s Statut. Pour les requêtes redirigées en interne, il s'agit du statut de la requête *originale* --- %>s pour la dernière.
%t Date à laquelle la requête a été reçue (au format anglais standard)
%{format}t La date, sous la forme spécifiée par format, qui devrait être au format étendu strftime(3) (éventuellement localisé). Si le format commence par begin: (valeur par défaut), la date est extraite au début du traitement de la requête ; s'il commence par end:, la date correspond au moment où l'entrée du journal est inscrite, par conséquent vers la fin du traitement de la requête. Hormis les formats supportés par strftime(3), les formats suivants sont aussi disponibles :
secnombre de secondes depuis Epoch
msecnombre de millisecondes depuis Epoch
usecnombre de microsecondes depuis Epoch
msec_fracfraction de milliseconde
usec_fracfraction de microseconde
Ces symboles ne peuvent pas être combinés entre eux ou avec un formatage strftime(3) dans la même chaîne de format. Par contre, vous pouvez utiliser plusieurs symboles %{format}t.
%T Le temps mis pour servir la requête, en secondes.
%{UNIT}T Le temps mis pour traiter la requête dans une unité définie par UNIT. Les valeurs d'unité valides sont ms pour millisecondes, us pour microsecondes et s pour secondes. Si UNIT est omis, la valeur de l'unité par défaut est la seconde ; spécifier la valeur d'unité us revient à utiliser le format %D. La possibilité de spécifier une valeur d'unité avec le format %T est disponible depuis la version 2.4.13 du serveur HTTP Apache.
%u L'utilisateur distant (en provenance d'auth ; peut être faux si le statut de retour (%s) est 401).
%U Le chemin de la requête, à l'exclusion de toute chaîne d'arguments.
%v Le nom canonique du serveur qui a servi la requête, défini par la directive ServerName.
%V La nom du serveur en tenant compte de la définition de la directive UseCanonicalName.
%X Statut de la connexion lorsque la réponse a été renvoyée :
X = connexion abandonnée avant l'envoi de la réponse.
+ = la connexion peut rester ouverte après l'envoi de la réponse.
- = la connexion sera fermée après l'envoi de la réponse.
%I Le nombre d'octets reçus, en comptant la requête et les en-têtes, ne peut être nul. Nécessite l'activation de mod_logio.
%O Nombre d'octets envoyés, y compris les en-têtes. Peut être nul dans les rares cas où une requête est avortée avant que la réponse ne soit envoyée. Nécessite l'activation de mod_logio.
%S Nombre d'octets transmis (en émission et réception), y compris corps et en-têtes de requête. Ce nombre ne peut pas être nul, et il correspond à la combinaison des formats %I et %O. mod_logio doit être chargé pour pouvoir utiliser ce format.
%{VARNAME}^ti Le contenu de VARNAME: dans les paramètres de la requête envoyée au serveur.
%{VARNAME}^to Le contenu de VARNAME: dans les paramètres de la réponse envoyée par le serveur.

Modificateurs

Il est possible de restreindre l'enregistrement de certains éléments en fonction du code de statut de la réponse, en insérant une liste de codes de statut séparés par des virgules immédiatement après le caractère "%". Par exemple, "%400,501{User-agent}i" n'enregistrera l'en-tête User-agent que dans le cas d'une erreur 400 ou 501. Avec les autres codes de statut, c'est la chaîne littérale "-" qui sera enregistrée. La liste de codes peut être précédée d'un "!"