645 lines
38 KiB
XML
645 lines
38 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
|
||
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
||
<!--
|
||
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
This file is generated from xml source: DO NOT EDIT
|
||
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
-->
|
||
<title>mod_log_config - Serveur HTTP Apache Version 2.4</title>
|
||
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
|
||
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
|
||
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
|
||
<script src="../style/scripts/prettify.min.js" type="text/javascript">
|
||
</script>
|
||
|
||
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
|
||
<body>
|
||
<div id="page-header">
|
||
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
|
||
<p class="apache">Serveur HTTP Apache Version 2.4</p>
|
||
<img alt="" src="../images/feather.png" /></div>
|
||
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
|
||
<div id="path">
|
||
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">Modules</a></div>
|
||
<div id="page-content">
|
||
<div id="preamble"><h1>Module Apache mod_log_config</h1>
|
||
<div class="toplang">
|
||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_log_config.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||
<a href="../fr/mod/mod_log_config.html" title="Français"> fr </a> |
|
||
<a href="../ja/mod/mod_log_config.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="../ko/mod/mod_log_config.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
|
||
<a href="../tr/mod/mod_log_config.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
|
||
</div>
|
||
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Journalisation des requêtes envoyées au
|
||
serveur</td></tr>
|
||
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
|
||
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>log_config_module</td></tr>
|
||
<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_log_config.c</td></tr></table>
|
||
<h3>Sommaire</h3>
|
||
|
||
<p>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.</p>
|
||
|
||
<p>Ce module fournit trois directives : <code class="directive"><a href="#transferlog">TransferLog</a></code> crée un fichier
|
||
journal, <code class="directive"><a href="#logformat">LogFormat</a></code>
|
||
définit un format personnalisé, et <code class="directive"><a href="#customlog">CustomLog</a></code> 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
|
||
<code class="directive">TransferLog</code> et
|
||
<code class="directive">CustomLog</code> dans chaque serveur.</p>
|
||
</div>
|
||
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3>Sujets</h3>
|
||
<ul id="topics">
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#formats">Formats de journaux personnalisés</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#security">Considérations concernant la
|
||
sécurité</a></li>
|
||
</ul><h3 class="directives">Directives</h3>
|
||
<ul id="toc">
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#bufferedlogs">BufferedLogs</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#customlog">CustomLog</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#globallog">GlobalLog</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#logformat">LogFormat</a></li>
|
||
<li><img alt="" src="../images/down.gif" /> <a href="#transferlog">TransferLog</a></li>
|
||
</ul>
|
||
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_log_config">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_log_config">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
|
||
<ul class="seealso">
|
||
<li><a href="../logs.html">Les fichiers journaux
|
||
d'Apache</a></li>
|
||
<li><a href="#comments_section">Commentaires</a></li></ul></div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="formats" id="formats">Formats de journaux personnalisés</a></h2>
|
||
|
||
<p>L'argument format des directives <code class="directive"><a href="#logformat">LogFormat</a></code> et <code class="directive"><a href="#customlog">CustomLog</a></code> 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.</p>
|
||
|
||
<p>Les caractéristiques de la requête en elle-même sont journalisées
|
||
en insérant des directives "<code>%</code>" dans la chaîne de
|
||
format, celles-ci étant remplacées dans le fichier journal par
|
||
certaines valeurs comme suit :</p>
|
||
|
||
<table class="bordered"><tr class="header"><th>Chaîne de format</th>
|
||
<th>Description</th></tr>
|
||
<tr><td><code>%%</code></td>
|
||
<td>Le signe "pourcentage"</td></tr>
|
||
<tr class="odd"><td><code>%a</code></td>
|
||
<td>L'adresse IP distante (voir le module
|
||
<code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>).</td></tr>
|
||
<tr><td><code>%{c}a</code></td>
|
||
<td>Adresse IP distante de la connexion(voir le module
|
||
<code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>)</td></tr>
|
||
<tr class="odd"><td><code>%A</code></td>
|
||
<td>L'adresse IP locale</td></tr>
|
||
<tr><td><code>%B</code></td>
|
||
<td>La taille de la réponse en octets, en excluant les en-têtes
|
||
HTTP.</td></tr>
|
||
<tr class="odd"><td><code>%b</code></td>
|
||
<td>La taille de la réponse en octets, en excluant les en-têtes
|
||
HTTP. Au format CLF , c'est à dire un '<code>-</code>' à la
|
||
place d'un 0 lorsqu'aucun octet n'est renvoyé.</td></tr>
|
||
<tr><td><code>%{<var>NOMVAR</var>}C</code></td>
|
||
<td>Le contenu du cookie <var>NOMVAR</var> dans la requête
|
||
envoyée au serveur. Seuls les cookies version 0 sont pleinement
|
||
supportés.</td></tr>
|
||
<tr class="odd"><td><code>%D</code></td>
|
||
<td>Le temps mis à servir la requête, en
|
||
microsecondes.</td></tr>
|
||
<tr><td><code>%{<var>NOMVAR</var>}e</code></td>
|
||
<td>Le contenu de la variable d'environnement
|
||
<var>NOMVAR</var></td></tr>
|
||
<tr class="odd"><td><code>%f</code></td>
|
||
<td>Nom de fichier</td></tr>
|
||
<tr><td><code>%h</code></td>
|
||
<td>Serveur distant. Contiendra l'adresse IP si la directive
|
||
<code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code> est définie
|
||
à <code>Off</code>, 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 <a href="mod_authz_host.html#reqhost">documentation de Require
|
||
host</a>.</td></tr>
|
||
<tr class="odd"><td><code>%{c}h</code></td>
|
||
<td>Semblable à <code>%h</code>, mais exploite toujours le nom d'hôte de
|
||
la connection TCP sous-jacente, en ignorant toute modification réalisée
|
||
sur le nom d'hôte distant par des modules tels que
|
||
<code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>.</td></tr>
|
||
<tr><td><code>%H</code></td>
|
||
<td>Le protocole de la requête</td></tr>
|
||
<tr class="odd"><td><code>%{<var>NOMVAR</var>}i</code></td>
|
||
<td>Le contenu des lignes d'en-tête
|
||
<code><var>NOMVAR</var>:</code> dans la requête envoyée au
|
||
serveur. Ces en-têtes sont ajoutés par d'autres modules (par
|
||
exemple <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>). 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
|
||
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> pour copier l'en-tête dans une
|
||
variable d'environnement interne et journaliser sa valeur via
|
||
le champ <code>%{<var>VARNAME</var>}e</code> décrit plus haut.
|
||
|
||
</td></tr>
|
||
<tr><td><code>%k</code></td>
|
||
<td>Nombre de requêtes persistantes en cours pour cette
|
||
connexion. Interessant si la directive <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code> 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).</td></tr>
|
||
<tr class="odd"><td><code>%l</code></td>
|
||
<td>Le nom de connexion distant (en provenance d'identd, si
|
||
disponible). Affiche un tiret, sauf si
|
||
<code class="module"><a href="../mod/mod_ident.html">mod_ident</a></code> est présent et si <code class="directive"><a href="../mod/mod_ident.html#identitycheck">IdentityCheck</a></code> est à
|
||
<code>On</code>.</td></tr>
|
||
<tr><td><code>%L</code></td>
|
||
<td>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)</td></tr>
|
||
<tr class="odd"><td><code>%m</code></td>
|
||
<td>La méthode de la requête</td></tr>
|
||
<tr><td><code>%{<var>NOMVAR</var>}n</code></td>
|
||
<td>Le contenu de la note <var>NOMVAR</var> en provenance d'un
|
||
autre module.</td></tr>
|
||
<tr class="odd"><td><code>%{<var>NOMVAR</var>}o</code></td>
|
||
<td>Le contenu de la ligne d'en-tête
|
||
<code><var>NOMVAR</var>:</code> de la réponse.</td></tr>
|
||
<tr><td><code>%p</code></td>
|
||
<td>Le port canonique du serveur servant la requête</td></tr>
|
||
<tr class="odd"><td><code>%{<var>format</var>}p</code></td>
|
||
<td>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 <code>canonical</code>, <code>local</code>,
|
||
ou <code>remote</code>.
|
||
</td></tr>
|
||
<tr><td><code>%P</code></td>
|
||
<td>Le numéro de processus du processus enfant qui a servi la
|
||
requête.</td></tr>
|
||
<tr class="odd"><td><code>%{<var>format</var>}P</code></td>
|
||
<td>Le numéro de processus ou le numéro de thread du processus
|
||
enfant qui a servi la requête. Les formats valides sont
|
||
<code>pid</code>, <code>tid</code>, et <code>hextid</code>.
|
||
</td></tr>
|
||
<tr><td><code>%q</code></td>
|
||
<td>La chaîne d'arguments (préfixée par un <code>?</code> si une
|
||
chaîne d'arguments existe, sinon une chaîne vide)</td></tr>
|
||
<tr class="odd"><td><code>%r</code></td>
|
||
<td>La première ligne de la requête</td></tr>
|
||
<tr><td><code>%R</code></td>
|
||
<td>Le gestionnaire qui génère la réponse (s'il y en a un).</td></tr>
|
||
<tr class="odd"><td><code>%s</code></td>
|
||
<td>Statut. Pour les requêtes redirigées en interne, il s'agit
|
||
du statut de la requête *originale* --- <code>%>s</code> pour
|
||
la dernière.</td></tr>
|
||
<tr><td><code>%t</code></td>
|
||
<td>Date à laquelle la requête a été reçue (au format anglais
|
||
standard)</td></tr>
|
||
<tr class="odd"><td><code>%{<var>format</var>}t</code></td>
|
||
<td>La date, sous la forme spécifiée par format, qui devrait
|
||
être au format étendu <code>strftime(3)</code> (éventuellement
|
||
localisé). Si le format commence par <code>begin:</code> (valeur
|
||
par défaut), la date est extraite au début du traitement de la
|
||
requête ; s'il commence par <code>end:</code>, 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 <code>strftime(3)</code>, les formats
|
||
suivants sont aussi disponibles :
|
||
<table>
|
||
<tr><td><code>sec</code></td><td>nombre de secondes depuis Epoch</td></tr>
|
||
<tr><td><code>msec</code></td><td>nombre de millisecondes depuis Epoch</td></tr>
|
||
<tr><td><code>usec</code></td><td>nombre de microsecondes depuis Epoch</td></tr>
|
||
<tr><td><code>msec_frac</code></td><td>fraction de milliseconde</td></tr>
|
||
<tr><td><code>usec_frac</code></td><td>fraction de microseconde</td></tr>
|
||
</table>
|
||
Ces symboles ne peuvent pas être combinés entre eux ou avec un
|
||
formatage <code>strftime(3)</code> dans la même chaîne de
|
||
format. Par contre, vous pouvez utiliser plusieurs symboles
|
||
<code>%{<var>format</var>}t</code>.</td></tr>
|
||
<tr><td><code>%T</code></td>
|
||
<td>Le temps mis pour servir la requête, en secondes.</td></tr>
|
||
<tr class="odd"><td><code>%{<var>UNIT</var>}T</code></td>
|
||
<td>Le temps mis pour traiter la requête dans une unité définie
|
||
par <code>UNIT</code>. Les valeurs d'unité valides sont
|
||
<code>ms</code> pour millisecondes, <code>us</code> pour
|
||
microsecondes et <code>s</code> pour secondes. Si
|
||
<code>UNIT</code> est omis, la valeur de l'unité par défaut est
|
||
la seconde ; spécifier la valeur d'unité <code>us</code> revient
|
||
à utiliser le format <code>%D</code>. La possibilité de
|
||
spécifier une valeur d'unité avec le format <code>%T</code> est
|
||
disponible depuis la version 2.4.13 du serveur HTTP Apache.</td></tr>
|
||
<tr><td><code>%u</code></td>
|
||
<td>L'utilisateur distant (en provenance d'auth ; peut être faux
|
||
si le statut de retour (<code>%s</code>) est 401).</td></tr>
|
||
<tr class="odd"><td><code>%U</code></td>
|
||
<td>Le chemin de la requête, à l'exclusion de toute chaîne
|
||
d'arguments.</td></tr>
|
||
<tr><td><code>%v</code></td>
|
||
<td>Le nom canonique du serveur qui a servi la requête, défini
|
||
par la directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>.</td></tr>
|
||
<tr class="odd"><td><code>%V</code></td>
|
||
<td>La nom du serveur en tenant compte de la définition de la
|
||
directive <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code>.</td></tr>
|
||
<tr><td><code>%X</code></td>
|
||
<td>Statut de la connexion lorsque la réponse a été renvoyée
|
||
:
|
||
|
||
<table>
|
||
|
||
<tr><td><code>X</code> =</td>
|
||
<td>connexion abandonnée avant l'envoi de la réponse.</td></tr>
|
||
<tr><td><code>+</code> =</td>
|
||
<td>la connexion peut rester ouverte après l'envoi de la
|
||
réponse.</td></tr>
|
||
<tr><td><code>-</code> = </td>
|
||
<td>la connexion sera fermée après l'envoi de la
|
||
réponse.</td></tr>
|
||
</table>
|
||
|
||
</td></tr>
|
||
<tr class="odd"><td><code>%I</code></td>
|
||
<td>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
|
||
<code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>.</td></tr>
|
||
<tr><td><code>%O</code></td>
|
||
<td>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
|
||
<code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>.</td></tr>
|
||
<tr class="odd"><td><code>%S</code></td>
|
||
<td>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.
|
||
<code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code> doit être chargé pour pouvoir
|
||
utiliser ce format.</td></tr>
|
||
<tr><td><code>%{<var>VARNAME</var>}^ti</code></td>
|
||
<td>Le contenu de <code><var>VARNAME</var>:</code> dans les
|
||
paramètres de la requête envoyée au serveur.</td></tr>
|
||
<tr class="odd"><td><code>%{<var>VARNAME</var>}^to</code></td>
|
||
<td>Le contenu de <code><var>VARNAME</var>:</code> dans les
|
||
paramètres de la réponse envoyée par le serveur.</td></tr>
|
||
</table>
|
||
|
||
<h3><a name="modifiers" id="modifiers">Modificateurs</a></h3>
|
||
|
||
<p>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, <code>"%400,501{User-agent}i"</code>
|
||
n'enregistrera l'en-tête <code>User-agent</code> que dans le cas
|
||
d'une erreur 400 ou 501. Avec les autres codes de statut, c'est la
|
||
chaîne littérale <code>"-"</code> qui sera enregistrée. La liste
|
||
de codes peut être précédée d'un "<code>!</code>" pour inverser la
|
||
condition : <code>"%!200,304,302{Referer}i"</code> enregistre
|
||
l'en-tête <code>Referer</code> pour toutes les requêtes qui
|
||
<em>ne</em> renvoient <em>pas</em> un des trois codes spécifiés.</p>
|
||
|
||
<p>Les modificateurs "<" et ">" peuvent être utilisés pour
|
||
les requêtes qui ont été redirigées en interne afin de choisir si
|
||
c'est respectivement la requête originale ou finale qui doit être
|
||
consultée. Par défaut, les directives <code>%s, %U, %T, %D,</code>
|
||
et <code>%r</code> consultent la requête originale, alors que
|
||
toutes les autres consultent la requête finale. Ainsi, par
|
||
exemple, on peut utiliser <code>%>s</code> pour enregistrer le
|
||
statut final de la requête, et <code>%<u</code> pour
|
||
enregistrer l'utilisateur authentifié à l'origine pour une requête
|
||
redirigée en interne vers une ressource sans authentification.</p>
|
||
|
||
|
||
|
||
<h3><a name="format-notes" id="format-notes">Quelques Notes</a></h3>
|
||
|
||
<p>Pour des raisons de sécurité, à partir de la version 2.0.46,
|
||
les caractères non imprimables et autres caractères spéciaux dans
|
||
les directives <code>%r</code>, <code>%i</code> et <code>%o</code>
|
||
doivent être échappés à l'aide des séquences
|
||
<code>\x<var>hh</var></code>,
|
||
où <var>hh</var> est le code hexadécimal du caractère spécial.
|
||
Comme exceptions à cette règle, les caractères <code>"</code> et
|
||
<code>\</code> doivent être échappés par un anti-slash, et tous
|
||
les "blancs" doivent être écrits selon leur notation de style C
|
||
(<code>\n</code>, <code>\t</code>, etc...). Avant la version
|
||
2.0.46, aucun échappement n'était effectué sur ces chaînes, et il
|
||
fallait être très prudent lors de l'exploitation des journaux
|
||
bruts.</p>
|
||
|
||
<p>A la différence de la version 1.3, depuis httpd 2.0, les chaînes
|
||
de format <code>%b</code> et <code>%B</code> ne représentent pas
|
||
le nombre d'octets envoyés au client, mais simplement la taille en
|
||
octets de la réponse HTTP (les deux étant différents, par exemple,
|
||
si la connexion est abandonnée, ou si SSL est utilisé). Le format
|
||
<code>%O</code> fourni par <code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>,
|
||
enregistrera le nombre réel d'octets envoyés sur le réseau.</p>
|
||
|
||
<p>Note : <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> est implémenté en tant que
|
||
gestionnaire basique et non en tant que gestionnaire standard.
|
||
C'est pourquoi la chaîne de format <code>%R</code> ne renverra pas
|
||
d'information à propos du gestionnaire lorsqu'une mise en cache de
|
||
contenu entre en jeu.</p>
|
||
|
||
|
||
|
||
<h3><a name="examples" id="examples">Exemples</a></h3>
|
||
|
||
<p>Quelques chaînes de format couramment utilisées :</p>
|
||
|
||
<dl>
|
||
<dt>Format de journal courant (CLF)</dt>
|
||
<dd><code>"%h %l %u %t \"%r\" %>s %b"</code></dd>
|
||
|
||
<dt>Format de journal courant avec un serveur virtuel</dt>
|
||
<dd><code>"%v %h %l %u %t \"%r\" %>s %b"</code></dd>
|
||
|
||
<dt>Format de journal NCSA étandu/combiné</dt>
|
||
<dd><code>"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
|
||
\"%{User-agent}i\""</code></dd>
|
||
|
||
<dt>Format de journal de la page qui contient le lien vers la
|
||
page concernée (Referer)</dt>
|
||
<dd><code>"%{Referer}i -> %U"</code></dd>
|
||
|
||
<dt>Format de journal de l'agent (Navigateur)</dt>
|
||
<dd><code>"%{User-agent}i"</code></dd>
|
||
</dl>
|
||
|
||
<p>Vous pouvez utiliser plusieurs fois la directive
|
||
<code>%{format}t</code> pour construire un format de temps
|
||
utilisant les symboles de format étendus tels que
|
||
<code>msec_frac</code> :</p>
|
||
<dl>
|
||
<dt>Format de temps prenant en compte les milisecondes</dt>
|
||
<dd><code>"%{%d/%b/%Y %T}t.%{msec_frac}t %{%z}t"</code></dd>
|
||
|
||
</dl>
|
||
|
||
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="security" id="security">Considérations concernant la
|
||
sécurité</a></h2>
|
||
<p>Voir le document <a href="../misc/security_tips.html#serverroot">conseils à matière de
|
||
sécurité</a> pour plus de détails sur les raisons pour lesquelles
|
||
votre sécurité pourrait être compromise, si le répertoire où sont
|
||
stockés les fichiers journaux sont inscriptibles par tout autre
|
||
utilisateur que celui qui démarre le serveur.</p>
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="bufferedlogs" id="bufferedlogs">Directive</a> <a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre les entrées du journal dans un tampon en mémoire
|
||
avant de les écrire sur disque</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BufferedLogs Off</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
|
||
</table>
|
||
<p>Lorsque la directive <code class="directive">BufferedLogs</code> est à
|
||
"on", <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> stocke de nombreuses entrées
|
||
du journal en mémoire, et les écrit d'un seul bloc sur disque,
|
||
plutôt que de les écrire après chaque requête. Sur certains
|
||
systèmes, ceci peut améliorer l'efficacité des accès disque, et par
|
||
conséquent les performances. La directive ne peut être définie
|
||
qu'une seule fois pour l'ensemble du serveur ; elle ne peut pas être
|
||
définie au niveau d'un serveur virtuel.</p>
|
||
|
||
<div class="note">Cette directive doit être utilisée avec
|
||
précautions car un crash peut provoquer la perte de données de
|
||
journalisation.</div>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="customlog" id="customlog">Directive</a> <a name="CustomLog" id="CustomLog">CustomLog</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom et le format du fichier
|
||
journal</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CustomLog <var>fichier</var>|<var>pipe</var>
|
||
<var>format</var>|<var>alias</var>
|
||
[env=[!]<var>variable-environnement</var>|
|
||
expr=<var>expression</var>]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
|
||
</table>
|
||
<p>La directive <code class="directive">CustomLog</code> permet de contrôler
|
||
la journalisation des requêtes destinées au serveur. Un format de
|
||
journal est spécifié, et la journalisation peut s'effectuer de
|
||
manière conditionnelle en fonction des caractéristiques de la
|
||
requête en utilisant des variables d'environnement.</p>
|
||
|
||
<p>Le premier argument, qui spécifie l'emplacement où les journaux
|
||
seront écrits, accepte deux types de valeurs :</p>
|
||
|
||
<dl>
|
||
<dt><var>fichier</var></dt>
|
||
<dd>Un nom de fichier, relatif au répertoire défini par la
|
||
directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
|
||
|
||
<dt><var>pipe</var></dt>
|
||
<dd>Le caractère pipe "<code>|</code>", suivi du chemin vers un
|
||
programme qui recevra les informations de la journalisation sur
|
||
son entrée standard. Voir les notes à propos de la <a href="../logs.html#piped">journalisation redirigée</a> pour plus
|
||
d'informations.
|
||
|
||
<div class="warning"><h3>Sécurité :</h3>
|
||
<p>Si les journaux sont redirigés vers un programme, ce dernier
|
||
s'exécutera sous l'utilisateur qui a démarré
|
||
<code class="program"><a href="../programs/httpd.html">httpd</a></code>. Ce sera l'utilisateur root si le serveur
|
||
a été démarré par root ; vérifiez que le programme est
|
||
sécurisé.</p>
|
||
</div>
|
||
<div class="warning"><h3>Note</h3>
|
||
<p>Lors de la spécification d'un chemin de fichier sur les
|
||
plate-formes non-Unix, il faut prendre soin de ne pas oublier
|
||
que seuls les slashes directs doivent être utilisés, même si la
|
||
plate-forme autorise l'emploi d'anti-slashes. D'une manière
|
||
générale, c'est une bonne idée que de n'utiliser que des slashes
|
||
directs dans les fichiers de configuration.</p>
|
||
</div></dd>
|
||
</dl>
|
||
|
||
<p>Le second argument permet de définir ce qui va être écrit dans le
|
||
fichier journal. Il peut contenir soit un <var>alias</var> prédéfini
|
||
par une directive <code class="directive"><a href="#logformat">LogFormat</a></code>, soit une chaîne de
|
||
<var>format</var> explicite comme décrit dans la section <a href="#formats">formats de journaux</a>.</p>
|
||
|
||
<p>Par exemple, les deux blocs de directives suivants produisent le
|
||
même effet :</p>
|
||
|
||
<pre class="prettyprint lang-config"># Journal personnalisé avec alias de format
|
||
LogFormat "%h %l %u %t \"%r\" %>s %b" common
|
||
CustomLog "logs/access_log" common
|
||
|
||
# Journal personnalisé avec chaîne de format explicite
|
||
CustomLog "logs/access_log" "%h %l %u %t \"%r\" %>s %b"</pre>
|
||
|
||
|
||
<p>Le troisième argument est optionnel et permet de contrôler si une
|
||
requête doit être ou non journalisée. Dans le cas d'une clause
|
||
'<code>env=!<var>nom</var></code>', la condition peut être la
|
||
présence ou l'absence d'une variable particulière dans
|
||
l'<a href="../env.html">environnement du serveur</a>. Dans le cas
|
||
d'une clause 'expr=<var>expression</var>', la condition consiste
|
||
en une <a href="../expr.html">expression</a> booléenne
|
||
quelconque. Si la condition n'est pas vérifiée, la requête ne sera
|
||
pas journalisée. D'éventuelles références à des en-têtes HTTP dans
|
||
l'expression rationnelle n'entraîneront pas l'ajout des noms
|
||
d'en-tête correspondants à l'en-tête Vary.</p>
|
||
|
||
<p>Les variables d'environnement peuvent être définies au niveau de
|
||
chaque requête en utilisant les modules
|
||
<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> et/ou <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.
|
||
Par exemple, si vous voulez enregistrer les requêtes pour toutes les
|
||
images GIF sur votre serveur dans un fichier journal séparé, et pas
|
||
dans votre journal principal, vous pouvez utiliser :</p>
|
||
|
||
<pre class="prettyprint lang-config">SetEnvIf Request_URI \.gif$ gif-image
|
||
CustomLog "gif-requests.log" common env=gif-image
|
||
CustomLog "nongif-requests.log" common env=!gif-image</pre>
|
||
|
||
|
||
<p>Ou, pour reproduire le comportement de l'ancienne directive
|
||
RefererIgnore, vous pouvez utiliser :</p>
|
||
|
||
<pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
|
||
CustomLog "referer.log" referer env=!localreferer</pre>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="globallog" id="globallog">Directive</a> <a name="GlobalLog" id="GlobalLog">GlobalLog</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom et le format du fichier journal</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>GlobalLog<var>file</var>|<var>pipe</var>
|
||
<var>format</var>|<var>nickname</var>
|
||
[env=[!]<var>environment-variable</var>|
|
||
expr=<var>expression</var>]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
|
||
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.19 du serveur HTTP Apache</td></tr>
|
||
</table>
|
||
|
||
<p>La directive <code class="directive">GlobalLog</code> permet de spécifier un
|
||
journal partagé entre le serveur principal et tous les serveurs virtuels
|
||
définis.</p>
|
||
|
||
<p>Elle est identique à la directive <code class="directive">CustomLog</code> à ces
|
||
différences près : </p>
|
||
<ul>
|
||
<li>Elle n'est pas valide dans un contexte de serveur virtuel.</li>
|
||
<li>A la différence d'une directive <code class="directive">CustomLog</code>
|
||
définie globalement, elle est prise en compte par les serveurs virtuels
|
||
qui définissent leur propre directive <code class="directive">CustomLog</code>.</li>
|
||
</ul>
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="logformat" id="logformat">Directive</a> <a name="LogFormat" id="LogFormat">LogFormat</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Décrit un format utilisable dans un fichier
|
||
journal</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LogFormat <var>format</var>|<var>alias</var>
|
||
[<var>alias</var>]</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %>s %b"</code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
|
||
</table>
|
||
<p>Cette directive permet de spécifier le format du fichier journal
|
||
des accès.</p>
|
||
|
||
<p>La directive <code class="directive">LogFormat</code> se présente sous
|
||
deux formes. Sous la première forme, qui ne possède qu'un seul
|
||
argument, la directive définit le format qui sera utilisé dans les
|
||
journaux spécifiés par les directives
|
||
<code class="directive">TransferLog</code> ultérieures. L'argument unique
|
||
peut contenir un <var>format</var> explicite comme décrit dans la
|
||
section <a href="#formats">formats de journaux personnalisés</a>
|
||
ci-dessus. Il peut aussi contenir un <var>alias</var> faisant
|
||
référence à un format de journal prédéfini par une directive
|
||
<code class="directive">LogFormat</code> comme décrit plus loin.</p>
|
||
|
||
<p>Sous sa seconde forme, la directive
|
||
<code class="directive">LogFormat</code> associe un <var>format</var>
|
||
explicite à un <var>alias</var>. Cet <var>alias</var> peut
|
||
ensuite s'utiliser dans les directives
|
||
<code class="directive">LogFormat</code> ou <code class="directive"><a href="#customlog">CustomLog</a></code> ultérieures, ce qui
|
||
évite d'avoir à répéter l'ensemble de la chaîne de format. Une
|
||
directive <code class="directive">LogFormat</code> qui définit un alias
|
||
<strong>ne fait rien d'autre</strong> -- c'est à dire qu'<em>elle ne
|
||
fait que</em> définir l'alias, elle n'applique pas le format et n'en
|
||
fait pas le format par défaut. Par conséquent, elle n'affecte pas
|
||
les directives <code class="directive"><a href="#transferlog">TransferLog</a></code> ultérieures. En
|
||
outre, la directive <code class="directive">LogFormat</code> ne peut pas
|
||
utiliser un alias pour en définir un autre. Notez que l'alias ne
|
||
doit pas contenir de caractère pourcent (<code>%</code>).</p>
|
||
|
||
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %>s %b" serveur_virtuel_commun</pre>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
|
||
<div class="directive-section"><h2><a name="transferlog" id="transferlog">Directive</a> <a name="TransferLog" id="TransferLog">TransferLog</a></h2>
|
||
<table class="directive">
|
||
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie l'emplacement d'un fichier journal</td></tr>
|
||
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>TransferLog <var>fichier</var>|<var>pipe</var></code></td></tr>
|
||
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
|
||
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
|
||
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
|
||
</table>
|
||
<p>Cette directive possède exactement les mêmes arguments et produit
|
||
les mêmes effets que la directive <code class="directive"><a href="#customlog">CustomLog</a></code>, à l'exception qu'elle
|
||
ne permet pas de spécifier un format de journal explicite ou la
|
||
journalisation conditionnelle des requêtes. En l'occurrence, le
|
||
format de journal est déterminé par la dernière définition d'une
|
||
directive <code class="directive"><a href="#logformat">LogFormat</a></code>
|
||
qui ne définit pas d'alias. Si aucun format particulier n'a été
|
||
spécifié, c'est le Common Log Format qui sera utilisé.</p>
|
||
|
||
<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
|
||
TransferLog logs/access_log</pre>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="bottomlang">
|
||
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_log_config.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||
<a href="../fr/mod/mod_log_config.html" title="Français"> fr </a> |
|
||
<a href="../ja/mod/mod_log_config.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="../ko/mod/mod_log_config.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
|
||
<a href="../tr/mod/mod_log_config.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
|
||
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
|
||
<script type="text/javascript"><!--//--><![CDATA[//><!--
|
||
var comments_shortname = 'httpd';
|
||
var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_log_config.html';
|
||
(function(w, d) {
|
||
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
|
||
d.write('<div id="comments_thread"><\/div>');
|
||
var s = d.createElement('script');
|
||
s.type = 'text/javascript';
|
||
s.async = true;
|
||
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
|
||
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
|
||
}
|
||
else {
|
||
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
|
||
}
|
||
})(window, document);
|
||
//--><!]]></script></div><div id="footer">
|
||
<p class="apache">Copyright 2024 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
|
||
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
|
||
if (typeof(prettyPrint) !== 'undefined') {
|
||
prettyPrint();
|
||
}
|
||
//--><!]]></script>
|
||
</body></html> |