1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
4 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7 This file is generated from xml source: DO NOT EDIT
8 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10 <title>mod_log_config - Serveur Apache HTTP Version 2.4</title>
11 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <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" />
14 <script src="../style/scripts/prettify.min.js" type="text/javascript">
17 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
19 <div id="page-header">
20 <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>
21 <p class="apache">Serveur Apache HTTP Version 2.4</p>
22 <img alt="" src="../images/feather.png" /></div>
23 <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
25 <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>
26 <div id="page-content">
27 <div id="preamble"><h1>Module Apache mod_log_config</h1>
29 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_log_config.html" hreflang="en" rel="alternate" title="English"> en </a> |
30 <a href="../fr/mod/mod_log_config.html" title="Français"> fr </a> |
31 <a href="../ja/mod/mod_log_config.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
32 <a href="../ko/mod/mod_log_config.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
33 <a href="../tr/mod/mod_log_config.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
35 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Journalisation des requêtes envoyées au
37 <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
38 <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>log_config_module</td></tr>
39 <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_log_config.c</td></tr></table>
42 <p>Ce module apporte une grande souplesse dans la journalisation des
43 requêtes des clients. Les journaux sont écrits sous un format
44 personnalisable, et peuvent être enregistrés directement dans un
45 fichier, ou redirigés vers un programme externe. La journalisation
46 conditionnelle est supportée, si bien que des requêtes individuelles
47 peuvent être incluses ou exclues des journaux en fonction de leur
50 <p>Ce module fournit trois directives : <code class="directive"><a href="#transferlog">TransferLog</a></code> crée un fichier
51 journal, <code class="directive"><a href="#logformat">LogFormat</a></code>
52 définit un format personnalisé, et <code class="directive"><a href="#customlog">CustomLog</a></code> définit un fichier journal et un format en
53 une seule étape. Pour journaliser les requêtes dans plusieurs
54 fichiers, vous pouvez utiliser plusieurs fois les directives
55 <code class="directive">TransferLog</code> et
56 <code class="directive">CustomLog</code> dans chaque serveur.</p>
58 <div id="quickview"><h3>Sujets</h3>
60 <li><img alt="" src="../images/down.gif" /> <a href="#formats">Formats de journaux personnalisés</a></li>
61 <li><img alt="" src="../images/down.gif" /> <a href="#security">Considérations concernant la
63 </ul><h3 class="directives">Directives</h3>
65 <li><img alt="" src="../images/down.gif" /> <a href="#bufferedlogs">BufferedLogs</a></li>
66 <li><img alt="" src="../images/down.gif" /> <a href="#customlog">CustomLog</a></li>
67 <li><img alt="" src="../images/down.gif" /> <a href="#globallog">GlobalLog</a></li>
68 <li><img alt="" src="../images/down.gif" /> <a href="#logformat">LogFormat</a></li>
69 <li><img alt="" src="../images/down.gif" /> <a href="#transferlog">TransferLog</a></li>
71 <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>
73 <li><a href="../logs.html">Les fichiers journaux
75 <li><a href="#comments_section">Commentaires</a></li></ul></div>
76 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
78 <h2><a name="formats" id="formats">Formats de journaux personnalisés</a></h2>
80 <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
81 caractères. Cette chaîne définit le format de la journalisation des
82 requêtes dans le fichier journal. Elle peut contenir des caractères
83 littéraux qui seront reproduits dans le fichier journal, et les
84 caractères de contrôle de style C "\n" et "\t" représentant
85 respectivement une nouvelle ligne et une tabulation. Les guillemets
86 et les anti-slashes littéraux doivent être échappés à l'aide
89 <p>Les caractéristiques de la requête en elle-même sont journalisées
90 en insérant des directives "<code>%</code>" dans la chaîne de
91 format, celles-ci étant remplacées dans le fichier journal par
92 certaines valeurs comme suit :</p>
94 <table class="bordered"><tr class="header"><th>Chaîne de format</th>
95 <th>Description</th></tr>
96 <tr><td><code>%%</code></td>
97 <td>Le signe "pourcentage"</td></tr>
98 <tr class="odd"><td><code>%a</code></td>
99 <td>L'adresse IP distante (voir le module
100 <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>).</td></tr>
101 <tr><td><code>%{c}a</code></td>
102 <td>Adresse IP distante de la connexion(voir le module
103 <code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>)</td></tr>
104 <tr class="odd"><td><code>%A</code></td>
105 <td>L'adresse IP locale</td></tr>
106 <tr><td><code>%B</code></td>
107 <td>La taille de la réponse en octets, en excluant les en-têtes
109 <tr class="odd"><td><code>%b</code></td>
110 <td>La taille de la réponse en octets, en excluant les en-têtes
111 HTTP. Au format CLF , c'est à dire un '<code>-</code>' à la
112 place d'un 0 lorsqu'aucun octet n'est renvoyé.</td></tr>
113 <tr><td><code>%{<var>NOMVAR</var>}C</code></td>
114 <td>Le contenu du cookie <var>NOMVAR</var> dans la requête
115 envoyée au serveur. Seuls les cookies version 0 sont pleinement
117 <tr class="odd"><td><code>%D</code></td>
118 <td>Le temps mis à servir la requête, en
119 microsecondes.</td></tr>
120 <tr><td><code>%{<var>NOMVAR</var>}e</code></td>
121 <td>Le contenu de la variable d'environnement
122 <var>NOMVAR</var></td></tr>
123 <tr class="odd"><td><code>%f</code></td>
124 <td>Nom de fichier</td></tr>
125 <tr><td><code>%h</code></td>
126 <td>Serveur distant. Contiendra l'adresse IP si la directive
127 <code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code> est définie
128 à <code>Off</code>, ce qui est sa valeur par défaut. Si cette
129 adresse IP n'est enregistrée que pour certains serveurs, vous
130 avez probablement défini des directives de contrôle d'accès qui
131 mentionnent ces derniers par leurs noms. Voir la <a href="mod_authz_host.html#reqhost">documentation de Require
133 <tr class="odd"><td><code>%H</code></td>
134 <td>Le protocole de la requête</td></tr>
135 <tr><td><code>%{<var>NOMVAR</var>}i</code></td>
136 <td>Le contenu des lignes d'en-tête
137 <code><var>NOMVAR</var>:</code> dans la requête envoyée au
138 serveur. Ces en-têtes sont ajoutés par d'autres modules (par
139 exemple <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>). Si vous êtes intéressé
140 par ce qu'était l'en-tête de la requête avant d'être modifié
141 par la plupart des modules, utilisez
142 <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> pour copier l'en-tête dans une
143 variable d'environnement interne et journaliser sa valeur via
144 le champ <code>%{<var>VARNAME</var>}e</code> décrit plus haut.
147 <tr class="odd"><td><code>%k</code></td>
148 <td>Nombre de requêtes persistantes en cours pour cette
149 connexion. Interessant si la directive <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code> est utilisée ; par exemple,
150 '1' signifie la première requête après la requête initiale, '2'
151 la seconde, etc... ; autrement, il s'agit toujours de 0
152 (indiquant la requête initiale).</td></tr>
153 <tr><td><code>%l</code></td>
154 <td>Le nom de connexion distant (en provenance d'identd, si
155 disponible). Affiche un tiret, sauf si
156 <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 à
157 <code>On</code>.</td></tr>
158 <tr class="odd"><td><code>%L</code></td>
159 <td>L'identifiant du message de journalisation de la requête
160 dans le journal des erreurs (ou '-' si aucun message n'a
161 été enregistré dans le journal des erreurs pour cette requête)</td></tr>
162 <tr><td><code>%m</code></td>
163 <td>La méthode de la requête</td></tr>
164 <tr class="odd"><td><code>%{<var>NOMVAR</var>}n</code></td>
165 <td>Le contenu de la note <var>NOMVAR</var> en provenance d'un
166 autre module.</td></tr>
167 <tr><td><code>%{<var>NOMVAR</var>}o</code></td>
168 <td>Le contenu de la ligne d'en-tête
169 <code><var>NOMVAR</var>:</code> de la réponse.</td></tr>
170 <tr class="odd"><td><code>%p</code></td>
171 <td>Le port canonique du serveur servant la requête</td></tr>
172 <tr><td><code>%{<var>format</var>}p</code></td>
173 <td>Le port canonique du serveur servant la requête ou le
174 véritable port du serveur ou le véritable port du client. les
175 formats valides sont <code>canonical</code>, <code>local</code>,
176 ou <code>remote</code>.
178 <tr class="odd"><td><code>%P</code></td>
179 <td>Le numéro de processus du processus enfant qui a servi la
181 <tr><td><code>%{<var>format</var>}P</code></td>
182 <td>Le numéro de processus ou le numéro de thread du processus
183 enfant qui a servi la requête. Les formats valides sont
184 <code>pid</code>, <code>tid</code>, et <code>hextid</code>.
185 <code>hextid</code> nécessite APR version 1.2.0 ou supérieure.
187 <tr class="odd"><td><code>%q</code></td>
188 <td>La chaîne d'arguments (préfixée par un <code>?</code> si une
189 chaîne d'arguments existe, sinon une chaîne vide)</td></tr>
190 <tr><td><code>%r</code></td>
191 <td>La première ligne de la requête</td></tr>
192 <tr class="odd"><td><code>%R</code></td>
193 <td>Le gestionnaire qui génère la réponse (s'il y en a un).</td></tr>
194 <tr><td><code>%s</code></td>
195 <td>Statut. Pour les requêtes redirigées en interne, il s'agit
196 du statut de la requête *originale* --- <code>%>s</code> pour
197 la dernière.</td></tr>
198 <tr class="odd"><td><code>%t</code></td>
199 <td>Date à laquelle la requête a été reçue (au format anglais
201 <tr><td><code>%{<var>format</var>}t</code></td>
202 <td>La date, sous la forme spécifiée par format, qui devrait
203 être au format étendu <code>strftime(3)</code> (éventuellement
204 localisé). Si le format commence par <code>begin:</code> (valeur
205 par défaut), la date est extraite au début du traitement de la
206 requête ; s'il commence par <code>end:</code>, la date
207 correspond au moment où l'entrée du journal est inscrite, par
208 conséquent vers la fin du traitement de la requête. Hormis les
209 formats supportés par <code>strftime(3)</code>, les formats
210 suivants sont aussi disponibles :
212 <tr><td><code>sec</code></td><td>nombre de secondes depuis Epoch</td></tr>
213 <tr><td><code>msec</code></td><td>nombre de millisecondes depuis Epoch</td></tr>
214 <tr><td><code>usec</code></td><td>nombre de microsecondes depuis Epoch</td></tr>
215 <tr><td><code>msec_frac</code></td><td>fraction de milliseconde</td></tr>
216 <tr><td><code>usec_frac</code></td><td>fraction de microseconde</td></tr>
218 Ces symboles ne peuvent pas être combinés entre eux ou avec un
219 formatage <code>strftime(3)</code> dans la même chaîne de
220 format. Par contre, vous pouvez utiliser plusieurs symboles
221 <code>%{<var>format</var>}t</code>.</td></tr>
222 <tr class="odd"><td><code>%T</code></td>
223 <td>Le temps mis pour servir la requête, en secondes.</td></tr>
224 <tr><td><code>%{<var>UNIT</var>}T</code></td>
225 <td>Le temps mis pour traiter la requête dans une unité définie
226 par <code>UNIT</code>. Les valeurs d'unité valides sont
227 <code>ms</code> pour millisecondes, <code>us</code> pour
228 microsecondes et <code>s</code> pour secondes. Si
229 <code>UNIT</code> est omis, la valeur de l'unité par défaut est
230 la seconde ; spécifier la valeur d'unité <code>us</code> revient
231 à utiliser le format <code>%D</code>. La possibilité de
232 spécifier une valeur d'unité avec le format <code>%T</code> est
233 disponible depuis la version 2.4.13 du serveur HTTP Apache.</td></tr>
234 <tr class="odd"><td><code>%u</code></td>
235 <td>L'utilisateur distant (en provenance d'auth ; peut être faux
236 si le statut de retour (<code>%s</code>) est 401).</td></tr>
237 <tr><td><code>%U</code></td>
238 <td>Le chemin de la requête, à l'exclusion de toute chaîne
239 d'arguments.</td></tr>
240 <tr class="odd"><td><code>%v</code></td>
241 <td>Le nom canonique du serveur qui a servi la requête, défini
242 par la directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>.</td></tr>
243 <tr><td><code>%V</code></td>
244 <td>La nom du serveur en tenant compte de la définition de la
245 directive <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code>.</td></tr>
246 <tr class="odd"><td><code>%X</code></td>
247 <td>Statut de la connexion lorsque la réponse a été renvoyée
252 <tr><td><code>X</code> =</td>
253 <td>connexion abandonnée avant l'envoi de la réponse.</td></tr>
254 <tr><td><code>+</code> =</td>
255 <td>la connexion peut rester ouverte après l'envoi de la
257 <tr><td><code>-</code> = </td>
258 <td>la connexion sera fermée après l'envoi de la
263 <tr><td><code>%I</code></td>
264 <td>Le nombre d'octets reçus, en comptant la requête et les
265 en-têtes, ne peut être nul. Nécessite l'activation de
266 <code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>.</td></tr>
267 <tr class="odd"><td><code>%O</code></td>
268 <td>Nombre d'octets envoyés, y compris les en-têtes. Peut être
269 nul dans les rares cas où une requête est avortée avant que la
270 réponse ne soit envoyée. Nécessite l'activation de
271 <code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>.</td></tr>
272 <tr><td><code>%S</code></td>
273 <td>Nombre d'octets transmis (en émission et réception), y
274 compris corps et en-têtes de requête. Ce nombre ne peut pas être
275 nul, et il correspond à la combinaison des formats %I et %O.
276 <code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code> doit être chargé pour pouvoir
277 utiliser ce format.</td></tr>
278 <tr class="odd"><td><code>%{<var>VARNAME</var>}^ti</code></td>
279 <td>Le contenu de <code><var>VARNAME</var>:</code> dans les
280 paramètres de la requête envoyée au serveur.</td></tr>
281 <tr><td><code>%{<var>VARNAME</var>}^to</code></td>
282 <td>Le contenu de <code><var>VARNAME</var>:</code> dans les
283 paramètres de la réponse envoyée par le serveur.</td></tr>
286 <h3><a name="modifiers" id="modifiers">Modificateurs</a></h3>
288 <p>Il est possible de restreindre l'enregistrement de certains
290 en fonction du code de statut de la réponse, en insérant une liste
291 de codes de statut séparés par des virgules immédiatement après le
292 caractère "%". Par exemple, <code>"%400,501{User-agent}i"</code>
293 n'enregistrera l'en-tête <code>User-agent</code> que dans le cas
294 d'une erreur 400 ou 501. Avec les autres codes de statut, c'est la
295 chaîne littérale <code>"-"</code> qui sera enregistrée. La liste
296 de codes peut être précédée d'un "<code>!</code>" pour inverser la
297 condition : <code>"%!200,304,302{Referer}i"</code> enregistre
298 l'en-tête <code>Referer</code> pour toutes les requêtes qui
299 <em>ne</em> renvoient <em>pas</em> un des trois codes spécifiés.</p>
301 <p>Les modificateurs "<" et ">" peuvent être utilisés pour
302 les requêtes qui ont été redirigées en interne afin de choisir si
303 c'est respectivement la requête originale ou finale qui doit être
304 consultée. Par défaut, les directives <code>%s, %U, %T, %D,</code>
305 et <code>%r</code> consultent la requête originale, alors que
306 toutes les autres consultent la requête finale. Ainsi, par
307 exemple, on peut utiliser <code>%>s</code> pour enregistrer le
308 statut final de la requête, et <code>%<u</code> pour
309 enregistrer l'utilisateur authentifié à l'origine pour une requête
310 redirigée en interne vers une ressource sans authentification.</p>
314 <h3><a name="format-notes" id="format-notes">Quelques Notes</a></h3>
316 <p>Pour des raisons de sécurité, à partir de la version 2.0.46,
317 les caractères non imprimables et autres caractères spéciaux dans
318 les directives <code>%r</code>, <code>%i</code> et <code>%o</code>
319 doivent être échappés à l'aide des séquences
320 <code>\x<var>hh</var></code>,
321 où <var>hh</var> est le code hexadécimal du caractère spécial.
322 Comme exceptions à cette règle, les caractères <code>"</code> et
323 <code>\</code> doivent être échappés par un anti-slash, et tous
324 les "blancs" doivent être écrits selon leur notation de style C
325 (<code>\n</code>, <code>\t</code>, etc...). Avant la version
326 2.0.46, aucun échappement n'était effectué sur ces chaînes, et il
327 fallait être très prudent lors de l'exploitation des journaux
330 <p>A la différence de la version 1.3, depuis httpd 2.0, les chaînes
331 de format <code>%b</code> et <code>%B</code> ne représentent pas
332 le nombre d'octets envoyés au client, mais simplement la taille en
333 octets de la réponse HTTP (les deux étant différents, par exemple,
334 si la connexion est abandonnée, ou si SSL est utilisé). Le format
335 <code>%O</code> fourni par <code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>,
336 enregistrera le nombre réel d'octets envoyés sur le réseau.</p>
338 <p>Note : <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> est implémenté en tant que
339 gestionnaire basique et non en tant que gestionnaire standard.
340 C'est pourquoi la chaîne de format <code>%R</code> ne renverra pas
341 d'information à propos du gestionnaire lorsqu'une mise en cache de
342 contenu entre en jeu.</p>
346 <h3><a name="examples" id="examples">Exemples</a></h3>
348 <p>Quelques chaînes de format couramment utilisées :</p>
351 <dt>Format de journal courant (CLF)</dt>
352 <dd><code>"%h %l %u %t \"%r\" %>s %b"</code></dd>
354 <dt>Format de journal courant avec un serveur virtuel</dt>
355 <dd><code>"%v %h %l %u %t \"%r\" %>s %b"</code></dd>
357 <dt>Format de journal NCSA étandu/combiné</dt>
358 <dd><code>"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
359 \"%{User-agent}i\""</code></dd>
361 <dt>Format de journal de la page qui contient le lien vers la
362 page concernée (Referer)</dt>
363 <dd><code>"%{Referer}i -> %U"</code></dd>
365 <dt>Format de journal de l'agent (Navigateur)</dt>
366 <dd><code>"%{User-agent}i"</code></dd>
369 <p>Vous pouvez utiliser plusieurs fois la directive
370 <code>%{format}t</code> pour construire un format de temps
371 utilisant les symboles de format étendus tels que
372 <code>msec_frac</code> :</p>
374 <dt>Format de temps prenant en compte les milisecondes</dt>
375 <dd><code>"%{%d/%b/%Y %T}t.%{msec_frac}t %{%z}t"</code></dd>
380 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
381 <div class="section">
382 <h2><a name="security" id="security">Considérations concernant la
384 <p>Voir le document <a href="../misc/security_tips.html#serverroot">conseils à matière de
385 sécurité</a> pour plus de détails sur les raisons pour lesquelles
386 votre sécurité pourrait être compromise, si le répertoire où sont
387 stockés les fichiers journaux sont inscriptibles par tout autre
388 utilisateur que celui qui démarre le serveur.</p>
390 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
391 <div class="directive-section"><h2><a name="bufferedlogs" id="bufferedlogs">Directive</a> <a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a></h2>
392 <table class="directive">
393 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre les entrées du journal dans un tampon en mémoire
394 avant de les écrire sur disque</td></tr>
395 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
396 <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BufferedLogs Off</code></td></tr>
397 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
398 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
399 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
401 <p>Lorsque la directive <code class="directive">BufferedLogs</code> est à
402 "on", <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> stocke de nombreuses entrées
403 du journal en mémoire, et les écrit d'un seul bloc sur disque,
404 plutôt que de les écrire après chaque requête. Sur certains
405 systèmes, ceci peut améliorer l'efficacité des accès disque, et par
406 conséquent les performances. La directive ne peut être définie
407 qu'une seule fois pour l'ensemble du serveur ; elle ne peut pas être
408 définie au niveau d'un serveur virtuel.</p>
410 <div class="note">Cette directive doit être utilisée avec
411 précautions car un crash peut provoquer la perte de données de
412 journalisation.</div>
415 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
416 <div class="directive-section"><h2><a name="customlog" id="customlog">Directive</a> <a name="CustomLog" id="CustomLog">CustomLog</a></h2>
417 <table class="directive">
418 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom et le format du fichier
420 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CustomLog <var>fichier</var>|<var>pipe</var>
421 <var>format</var>|<var>alias</var>
422 [env=[!]<var>variable-environnement</var>|
423 expr=<var>expression</var>]</code></td></tr>
424 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
425 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
426 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
428 <p>La directive <code class="directive">CustomLog</code> permet de contrôler
429 la journalisation des requêtes destinées au serveur. Un format de
430 journal est spécifié, et la journalisation peut s'effectuer de
431 manière conditionnelle en fonction des caractéristiques de la
432 requête en utilisant des variables d'environnement.</p>
434 <p>Le premier argument, qui spécifie l'emplacement où les journaux
435 seront écrits, accepte deux types de valeurs :</p>
438 <dt><var>fichier</var></dt>
439 <dd>Un nom de fichier, relatif au répertoire défini par la
440 directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
442 <dt><var>pipe</var></dt>
443 <dd>Le caractère pipe "<code>|</code>", suivi du chemin vers un
444 programme qui recevra les informations de la journalisation sur
445 son entrée standard. Voir les notes à propos de la <a href="../logs.html#piped">journalisation redirigée</a> pour plus
448 <div class="warning"><h3>Sécurité :</h3>
449 <p>Si les journaux sont redirigés vers un programme, ce dernier
450 s'exécutera sous l'utilisateur qui a démarré
451 <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Ce sera l'utilisateur root si le serveur
452 a été démarré par root ; vérifiez que le programme est
455 <div class="warning"><h3>Note</h3>
456 <p>Lors de la spécification d'un chemin de fichier sur les
457 plate-formes non-Unix, il faut prendre soin de ne pas oublier
458 que seuls les slashes directs doivent être utilisés, même si la
459 plate-forme autorise l'emploi d'anti-slashes. D'une manière
460 générale, c'est une bonne idée que de n'utiliser que des slashes
461 directs dans les fichiers de configuration.</p>
465 <p>Le second argument permet de définir ce qui va être écrit dans le
466 fichier journal. Il peut contenir soit un <var>alias</var> prédéfini
467 par une directive <code class="directive"><a href="#logformat">LogFormat</a></code>, soit une chaîne de
468 <var>format</var> explicite comme décrit dans la section <a href="#formats">formats de journaux</a>.</p>
470 <p>Par exemple, les deux blocs de directives suivants produisent le
473 <pre class="prettyprint lang-config"># Journal personnalisé avec alias de format
474 LogFormat "%h %l %u %t \"%r\" %>s %b" common
475 CustomLog "logs/access_log" common
477 # Journal personnalisé avec chaîne de format explicite
478 CustomLog "logs/access_log" "%h %l %u %t \"%r\" %>s %b"</pre>
481 <p>Le troisième argument est optionnel et permet de contrôler si une
482 requête doit être ou non journalisée. Dans le cas d'une clause
483 '<code>env=!<var>nom</var></code>', la condition peut être la
484 présence ou l'absence d'une variable particulière dans
485 l'<a href="../env.html">environnement du serveur</a>. Dans le cas
486 d'une clause 'expr=<var>expression</var>', la condition consiste
487 en une <a href="../expr.html">expression</a> booléenne
488 quelconque. Si la condition n'est pas vérifiée, la requête ne sera
489 pas journalisée. D'éventuelles références à des en-têtes HTTP dans
490 l'expression rationnelle n'entraîneront pas l'ajout des noms
491 d'en-tête correspondants à l'en-tête Vary.</p>
493 <p>Les variables d'environnement peuvent être définies au niveau de
494 chaque requête en utilisant les modules
495 <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>.
496 Par exemple, si vous voulez enregistrer les requêtes pour toutes les
497 images GIF sur votre serveur dans un fichier journal séparé, et pas
498 dans votre journal principal, vous pouvez utiliser :</p>
500 <pre class="prettyprint lang-config">SetEnvIf Request_URI \.gif$ gif-image
501 CustomLog "gif-requests.log" common env=gif-image
502 CustomLog "nongif-requests.log" common env=!gif-image</pre>
505 <p>Ou, pour reproduire le comportement de l'ancienne directive
506 RefererIgnore, vous pouvez utiliser :</p>
508 <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
509 CustomLog "referer.log" referer env=!localreferer</pre>
513 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
514 <div class="directive-section"><h2><a name="globallog" id="globallog">Directive</a> <a name="GlobalLog" id="GlobalLog">GlobalLog</a></h2>
515 <table class="directive">
516 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom et le format du fichier journal</td></tr>
517 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>GlobalLog <var>file</var>|<var>pipe</var>|<var>provider</var>
518 <var>format</var>|<var>nickname</var>
519 [env=[!]<var>environment-variable</var>|
520 expr=<var>expression</var>]</code></td></tr>
521 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
522 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
523 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
524 <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>
527 <p>La directive <code class="directive">GlobalLog</code> permet de spécifier un
528 journal partagé entre le serveur principal et tous les serveurs virtuels
531 <p>Elle est identique à la directive <code class="directive">CustomLog</code> à ces
532 différences près : </p>
534 <li>Elle n'est pas valide dans un contexte de serveur virtuel.</li>
535 <li>A la différence d'une directive <code class="directive">CustomLog</code>
536 définie globalement, elle est prise en compte par les serveurs virtuels
537 qui définissent leur propre directive <code class="directive">CustomLog</code>.</li>
541 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
542 <div class="directive-section"><h2><a name="logformat" id="logformat">Directive</a> <a name="LogFormat" id="LogFormat">LogFormat</a></h2>
543 <table class="directive">
544 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Décrit un format utilisable dans un fichier
546 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LogFormat <var>format</var>|<var>alias</var>
547 [<var>alias</var>]</code></td></tr>
548 <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>
549 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
550 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
551 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
553 <p>Cette directive permet de spécifier le format du fichier journal
556 <p>La directive <code class="directive">LogFormat</code> se présente sous
557 deux formes. Sous la première forme, qui ne possède qu'un seul
558 argument, la directive définit le format qui sera utilisé dans les
559 journaux spécifiés par les directives
560 <code class="directive">TransferLog</code> ultérieures. L'argument unique
561 peut contenir un <var>format</var> explicite comme décrit dans la
562 section <a href="#formats">formats de journaux personnalisés</a>
563 ci-dessus. Il peut aussi contenir un <var>alias</var> faisant
564 référence à un format de journal prédéfini par une directive
565 <code class="directive">LogFormat</code> comme décrit plus loin.</p>
567 <p>Sous sa seconde forme, la directive
568 <code class="directive">LogFormat</code> associe un <var>format</var>
569 explicite à un <var>alias</var>. Cet <var>alias</var> peut
570 ensuite s'utiliser dans les directives
571 <code class="directive">LogFormat</code> ou <code class="directive"><a href="#customlog">CustomLog</a></code> ultérieures, ce qui
572 évite d'avoir à répéter l'ensemble de la chaîne de format. Une
573 directive <code class="directive">LogFormat</code> qui définit un alias
574 <strong>ne fait rien d'autre</strong> -- c'est à dire qu'<em>elle ne
575 fait que</em> définir l'alias, elle n'applique pas le format et n'en
576 fait pas le format par défaut. Par conséquent, elle n'affecte pas
577 les directives <code class="directive"><a href="#transferlog">TransferLog</a></code> ultérieures. En
578 outre, la directive <code class="directive">LogFormat</code> ne peut pas
579 utiliser un alias pour en définir un autre. Notez que l'alias ne
580 doit pas contenir de caractère pourcent (<code>%</code>).</p>
582 <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %>s %b" serveur_virtuel_commun</pre>
587 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
588 <div class="directive-section"><h2><a name="transferlog" id="transferlog">Directive</a> <a name="TransferLog" id="TransferLog">TransferLog</a></h2>
589 <table class="directive">
590 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie l'emplacement d'un fichier journal</td></tr>
591 <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>TransferLog <var>fichier</var>|<var>pipe</var></code></td></tr>
592 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
593 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
594 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
596 <p>Cette directive possède exactement les mêmes arguments et produit
597 les mêmes effets que la directive <code class="directive"><a href="#customlog">CustomLog</a></code>, à l'exception qu'elle
598 ne permet pas de spécifier un format de journal explicite ou la
599 journalisation conditionnelle des requêtes. En l'occurrence, le
600 format de journal est déterminé par la dernière définition d'une
601 directive <code class="directive"><a href="#logformat">LogFormat</a></code>
602 qui ne définit pas d'alias. Si aucun format particulier n'a été
603 spécifié, c'est le Common Log Format qui sera utilisé.</p>
605 <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
606 TransferLog logs/access_log</pre>
611 <div class="bottomlang">
612 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_log_config.html" hreflang="en" rel="alternate" title="English"> en </a> |
613 <a href="../fr/mod/mod_log_config.html" title="Français"> fr </a> |
614 <a href="../ja/mod/mod_log_config.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
615 <a href="../ko/mod/mod_log_config.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
616 <a href="../tr/mod/mod_log_config.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
617 </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 again 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 Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
618 <script type="text/javascript"><!--//--><![CDATA[//><!--
619 var comments_shortname = 'httpd';
620 var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_log_config.html';
622 if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
623 d.write('<div id="comments_thread"><\/div>');
624 var s = d.createElement('script');
625 s.type = 'text/javascript';
627 s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
628 (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
631 d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
633 })(window, document);
634 //--><!]]></script></div><div id="footer">
635 <p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
636 <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[//><!--
637 if (typeof(prettyPrint) !== 'undefined') {