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        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>Fichiers journaux - Serveur Apache HTTP</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<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" />
12<script src="/style/scripts/prettify.min.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body id="manual-page"><div id="page-header">
17<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>
18<p class="apache">Serveur Apache HTTP Version 2.4</p>
19<img alt="" src="/images/feather.gif" /></div>
20<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
21<div id="path">
22<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.4</a></div><div id="page-content"><div id="preamble"><h1>Fichiers journaux</h1>
23<div class="toplang">
24<p><span>Langues Disponibles: </span><a href="/en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25<a href="/fr/logs.html" title="Fran�ais">&nbsp;fr&nbsp;</a> |
26<a href="/ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
27<a href="/ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
28<a href="/tr/logs.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
29</div>
30
31    <p>Pour v�ritablement g�rer un serveur web,
32    il est n�cessaire de disposer d'un
33    retour d'informations � propos de l'activit� et des performances du
34    serveur, ainsi que de tout probl�me qui pourrait survenir. Le serveur HTTP
35    Apache propose des fonctionnalit�s de journalisation souples et tr�s
36    compl�tes. Ce document d�crit comment configurer ces fonctionnalit�s de
37    journalisation et interpr�ter le contenu des journaux.</p>
38  </div>
39<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#overview">Vue d'ensemble</a></li>
40<li><img alt="" src="/images/down.gif" /> <a href="#security">Avertissement � propos de la s�curit�</a></li>
41<li><img alt="" src="/images/down.gif" /> <a href="#errorlog">Journal des erreurs</a></li>
42<li><img alt="" src="/images/down.gif" /> <a href="#permodule">Journalisation par module</a></li>
43<li><img alt="" src="/images/down.gif" /> <a href="#accesslog">Journal des acc�s</a></li>
44<li><img alt="" src="/images/down.gif" /> <a href="#rotation">Rotation des journaux</a></li>
45<li><img alt="" src="/images/down.gif" /> <a href="#piped">Journaux redirig�s</a></li>
46<li><img alt="" src="/images/down.gif" /> <a href="#virtualhost">H�tes virtuels</a></li>
47<li><img alt="" src="/images/down.gif" /> <a href="#other">Autres fichiers journaux</a></li>
48</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
49<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
50<div class="section">
51<h2><a name="overview" id="overview">Vue d'ensemble</a></h2>
52    
53
54  <table class="related"><tr><th>Modules Apparent�s</th><th>Directives Apparent�es</th></tr><tr><td><ul><li><code class="module"><a href="/mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="/mod/mod_log_forensic.html">mod_log_forensic</a></code></li><li><code class="module"><a href="/mod/mod_logio.html">mod_logio</a></code></li><li><code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td /></tr></table>
55
56  <p>
57  Le serveur HTTP Apache fournit toute une vari�t� de m�canismes
58  diff�rents pour la journalisation de tout ce qui peut se passer au
59  sein de votre serveur, depuis la requ�te initiale, en passant par le
60  processus de mise en correspondance des URLs, et jusqu'� la fermeture
61  de la connexion, y compris toute erreur pouvant survenir au cours du
62  traitement. De plus, certains modules tiers fournissent des
63  fonctionnalit�s de journalisation ou ins�rent des entr�es dans les
64  fichiers journaux existants, et les applications comme les programmes
65  CGI, les scripts PHP ou autres gestionnaires peuvent envoyer des
66  messages vers le journal des erreurs du serveur.
67  </p>
68
69  <p>
70  Ce document d�crit le fonctionnement des modules de journalisation
71  fournis en standard avec le serveur httpd.
72  </p>
73
74  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
75<div class="section">
76<h2><a name="security" id="security">Avertissement � propos de la s�curit�</a></h2>
77    
78
79    <p>Tout utilisateur qui a les droits en �criture sur le r�pertoire dans
80    lequel Apache httpd �crit ses journaux pourra quasi
81    certainement avoir acc�s � l'uid sous lequel le serveur est d�marr�, en
82    l'occurrence habituellement root. N'accordez <em>PAS</em> aux utilisateurs
83    l'acc�s en �criture au r�pertoire dans lequel les journaux sont stock�s
84    sans savoir exactement quelles en seraient les cons�quences ; voir le
85    document <a href="misc/security_tips.html">conseils sur la s�curit�</a>
86    pour plus de d�tails.</p>
87
88    <p>En outre, les journaux peuvent contenir des informations fournies
89    directement par un client, sans caract�res d'�chappement. Des clients mal
90    intentionn�s peuvent donc ins�rer des caract�res de contr�le dans les
91    journaux, et il convient par cons�quent d'�tre tr�s prudent lors de la
92    manipulation des journaux bruts.</p>
93  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
94<div class="section">
95<h2><a name="errorlog" id="errorlog">Journal des erreurs</a></h2>
96    
97
98    <table class="related"><tr><th>Modules Apparent�s</th><th>Directives Apparent�es</th></tr><tr><td><ul><li><code class="module"><a href="/mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="/mod/core.html#errorlog">ErrorLog</a></code></li><li><code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code></li></ul></td></tr></table>
99
100    <p>Le journal des erreurs du serveur, dont le nom et la localisation sont
101    d�finis par la directive <code class="directive"><a href="/mod/core.html#errorlog">ErrorLog</a></code>,
102    est le journal le plus important. C'est dans celui-ci
103    que le d�mon Apache httpd va envoyer les informations de diagnostic et
104    enregistrer toutes les erreurs qui surviennent lors du traitement des
105    requ�tes. Lorsqu'un probl�me survient au d�marrage du serveur ou pendant
106    son fonctionnement, la premi�re chose � faire est de regarder dans ce
107    journal, car il vous renseignera souvent sur le probl�me rencontr� et
108    la mani�re d'y rem�dier.</p>
109
110    <p>Le journal des erreurs est habituellement enregistr� dans un fichier
111    (en g�n�ral <code>error_log</code> sur les syst�mes de type Unix et
112    <code>error.log</code> sur Windows et OS/2). Sur les syst�mes de type Unix,
113    le serveur peut aussi enregistrer ses erreurs dans
114    <code>syslog</code> ou les
115    <a href="#piped">rediriger vers un programme</a> par l'interm�diaire d'un
116    tube de communication (pipe).</p>
117
118    <p>Le format par d�faut du journal des erreurs est descriptif et de forme
119    relativement libre. Certaines informations apparaissent cependant dans la
120    plupart des entr�es du journal. Voici un message typique
121    � titre d'exemple : </p>
122
123    <div class="example"><p><code>
124      [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1]
125      client denied by server configuration:
126      /export/home/live/ap/htdocs/test
127    </code></p></div>
128
129    <p>Le premier champ de l'entr�e du journal est la date et l'heure du
130    message. Le second champ indique la s�v�rit� de l'erreur rapport�e. La
131    directive <code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code> permet de
132    restreindre le type des erreurs qui doivent �tre enregistr�es
133    dans le journal des erreurs en d�finissant leur niveau de s�v�rit�. Le
134    troisi�me champ contient l'adresse IP du client qui a g�n�r� l'erreur.
135    Vient ensuite le message proprement dit, qui indique dans ce cas que le
136    serveur a �t� configur� pour interdire l'acc�s au client. Le serveur
137    indique le chemin syst�me du document requis (et non
138    son chemin web).</p>
139
140    <p>Une grande vari�t� de messages diff�rents peuvent appara�tre dans le
141    journal des erreurs. La plupart d'entre eux sont similaires � l'exemple
142    ci-dessus. Le journal des erreurs peut aussi contenir des informations de
143    d�bogage en provenance de scripts CGI. Toute information qu'un script CGI
144    �crit sur la sortie d'erreurs standard <code>stderr</code> sera recopi�e
145    telle quelle dans le journal des erreurs.</p>
146
147    <p>La directive <code class="directive"><a href="/mod/core.html#errorlogformat">ErrorLogFormat</a></code>
148    vous permet de personnaliser le format du journal des erreurs, et de
149    d�finir les informations � journaliser. Si
150    <code class="module"><a href="/mod/mod_unique_id.html">mod_unique_id</a></code> est pr�sent, vous pouvez utiliser le
151    drapeau <code>%L</code> � la fois dans le journal des erreurs et
152    dans le
153    journal des acc�s, ce qui aura pour effet de g�n�rer un identifiant
154    d'entr�e qui vous permettra de corr�ler les entr�es du journal des
155    erreurs avec celles du journal des acc�s.</p>
156
157    <p>Pendant la phase de test, il est souvent utile de visualiser en continu
158    le journal des erreurs afin de d�tecter tout probl�me �ventuel. Sur les
159    syst�mes de type Unix, ceci s'effectue � l'aide de la commande :</p>
160
161    <div class="example"><p><code>
162      tail -f error_log
163    </code></p></div>
164  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
165<div class="section">
166<h2><a name="permodule" id="permodule">Journalisation par module</a></h2>
167    
168
169    <p>La directive <code class="directive"><a href="/mod/core.html#loglevel">LogLevel</a></code> permet
170    de sp�cifier un niveau de s�v�rit� de journalisation pour chaque
171    module. Vous pouvez ainsi r�soudre un probl�me propre � un module particulier
172    en augmentant son volume de journalisation sans augmenter ce volume
173    pour les autres modules. Ceci est particuli�rement utile lorsque
174    vous voulez obtenir des d�tails sur le fonctionnement de modules
175    comme <code class="module"><a href="/mod/mod_proxy.html">mod_proxy</a></code> ou <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
176
177    <p>Pour ce faire, vous devez sp�cifier le nom du module dans votre
178    directive <code class="directive">LogLevel</code> :</p>
179
180    <pre class="prettyprint lang-config">LogLevel info rewrite:trace5</pre>
181
182
183    <p>Dans cet exemple, le niveau de journalisation g�n�ral est d�fini
184    � info, et � <code>trace5</code> pour <code class="module"><a href="/mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
185
186    <div class="note">Cette directive remplace les directives de journalisation par
187    module des versions pr�c�dentes du serveur, comme
188    <code>RewriteLog</code>.</div>
189 </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
190<div class="section">
191<h2><a name="accesslog" id="accesslog">Journal des acc�s</a></h2>
192    
193
194    <table class="related"><tr><th>Modules Apparent�s</th><th>Directives Apparent�es</th></tr><tr><td><ul><li><code class="module"><a href="/mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="/mod/mod_setenvif.html">mod_setenvif</a></code></li></ul></td><td><ul><li><code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code></li><li><code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="/mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li></ul></td></tr></table>
195
196    <p>Le journal des acc�s au serveur
197    enregistre toutes les requ�tes que traite
198    ce dernier. La localisation et le contenu du journal des acc�s sont d�finis
199    par la directive <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code>.
200    La directive <code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code>
201    permet de simplifier la s�lection du contenu du journal. Cette section
202    d�crit comment configurer le serveur pour l'enregistrement des informations
203    dans le journal des acc�s.</p>
204
205    <p>Bien �videmment, le stockage d'informations dans le journal des acc�s
206    n'est que le point de d�part de la gestion de la journalisation. L'�tape
207    suivante consiste � analyser ces informations de fa�on � pouvoir en
208    extraire des statistiques utiles. L'analyse de journaux en g�n�ral est en
209    dehors du sujet de ce document et ne fait pas vraiment partie int�grante
210    du travail du serveur web lui-m�me. Pour plus d'informations � propos de ce
211    sujet et des applications d�di�es � l'analyse de journaux, vous pouvez vous
212    r�f�rer � <a href="http://dmoz.org/Computers/Software/Internet/     Site_Management/Log_analysis/">Open Directory</a> ou
213    <a href="http://dir.yahoo.com/Computers_and_Internet/Software/     Internet/World_Wide_Web/Servers/Log_Analysis_Tools/">Yahoo</a>.</p>
214
215    <p>Diff�rentes versions du d�mon Apache httpd utilisaient d'autres modules
216    et directives pour contr�ler la journalisation des acc�s, � l'instar de
217    mod_log_referer, mod_log_agent, et de la directive
218    <code>TransferLog</code>. La directive
219    <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> rassemble
220    d�sormais les fonctionnalit�s de toutes les anciennes directives.</p>
221
222    <p>Le format du journal des acc�s est hautement configurable. Il est
223    d�fini � l'aide d'une cha�ne de format qui ressemble sensiblement � la
224    cha�ne de format de style langage C de printf(1). Vous trouverez quelques
225    exemples dans les sections suivantes. Pour une liste exhaustive de ce que
226    peut contenir une cha�ne de format, vous pouvez vous r�f�rer au chapitre
227    <a href="mod/mod_log_config.html#formats">cha�nes de format</a> de la
228    documentation du module <code class="module"><a href="/mod/mod_log_config.html">mod_log_config</a></code>.</p>
229
230    <h3><a name="common" id="common">Format habituel du journal</a></h3>
231      
232
233      <p>Voici une configuration typique pour le journal des acc�s :</p>
234
235      <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
236CustomLog logs/access_log common</pre>
237
238
239      <p>Ici est d�finie l'<em>identit�</em> <code>common</code> qui est
240      ensuite associ�e � une cha�ne de format de journalisation particuli�re.
241      La cha�ne de format est constitu�e de directives d�butant par le
242      caract�re %, chacune d'entre elles indiquant au serveur d'enregistrer
243      un �l�ment particulier d'information. Des caract�res litt�raux peuvent
244      aussi �tre ins�r�s dans la cha�ne de format ; il seront copi�s tels
245      quels dans le flux de sortie destin� � la journalisation.
246      Les guillemets (<code>"</code>) doivent �tre �chapp�es en les faisant
247      pr�c�der d'un anti-slash (<code>\</code>) afin qu'elles ne soient pas
248      interpr�t�es comme la fin de la cha�ne de format. La cha�ne de format
249      peut aussi contenir les caract�res de contr�le sp�ciaux
250      "<code>\n</code>" et "<code>\t</code>" pour ins�rer respectivement
251      un passage � la ligne et une tabulation.</p>
252
253      <p>La directive <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code>
254      d�finit un nouveau fichier journal en l'associant � l'identit�
255      pr�c�demment d�finie. Le chemin du nom de fichier associ� au journal
256      des acc�s est relatif au chemin d�fini par la directive
257      <code class="directive"><a href="/mod/core.html#serverroot">ServerRoot</a></code>, sauf s'il
258      d�bute par un slash.</p>
259
260      <p>La configuration ci-dessus va enregistrer les entr�es de
261      journalisation selon un format connu sous le nom de
262      Common Log Format (CLF) pour "Format de journalisation standard".
263      Ce format standard peut �tre produit par de nombreux serveurs web
264      diff�rents et lu par de nombreux programmes d'analyse de journaux.
265      Les entr�es de fichier journal g�n�r�es selon le format CLF
266      ressemblent � ceci :</p>
267
268      <div class="example"><p><code>
269        127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
270        /apache_pb.gif HTTP/1.0" 200 2326
271      </code></p></div>
272
273      <p>Chaque partie de cette entr�e de journal est d�crite
274      dans ce qui suit.</p>
275
276      <dl>
277        <dt><code>127.0.0.1</code> (<code>%h</code>)</dt>
278
279        <dd>Il s'agit de l'adresse IP du client (l'h�te distant) qui a envoy�
280	la requ�te au serveur. Si la directive
281	<code class="directive"><a href="/mod/core.html#hostnamelookups">HostnameLookups</a></code> est positionn�e �
282	<code>On</code>, le serveur va essayer de d�terminer le nom de l'h�te
283	et de l'enregistrer � la place de l'adresse IP. Cette configuration
284	n'est cependant pas recommand�e car elle peut ralentir le serveur de
285	mani�re significative. Il est par cons�quent pr�f�rable d'utiliser un
286	processeur d'analyse de journaux a posteriori
287	tel que <code class="program"><a href="/programs/logresolve.html">logresolve</a></code>
288	pour d�terminer les noms d'h�te. L'adresse IP indiqu�e ici n'est pas
289	n�cessairement l'adresse IP de la machine devant laquelle se trouve
290	l'utilisateur. Si un serveur mandataire s'intercale entre le serveur
291	et l'utilisateur, l'adresse indiqu�e sera celle du mandataire et non
292	celle de la machine � l'origine de la requ�te.</dd>
293
294        <dt><code>-</code> (<code>%l</code>)</dt>
295
296        <dd>Le "trait d'union" indique que la portion d'information
297	correspondante n'est pas disponible. Dans le cas pr�sent, l'information
298	non disponible est l'identit� (RFC 1413) du client telle que d�termin�e
299	par <code>identd</code> sur la machine cliente. Cette information est
300	tr�s peu fiable et ne devrait jamais �tre utilis�e, sauf dans le cas
301	de r�seaux internes �troitement contr�l�s. Le d�mon httpd ne cherchera
302	d'ailleurs � obtenir cette information que si la directive
303	<code class="directive"><a href="/mod/mod_ident.html#identitycheck">IdentityCheck</a></code> est positionn�e
304	� <code>On</code>.</dd>
305
306        <dt><code>frank</code> (<code>%u</code>)</dt>
307
308        <dd>Il s'agit de l'identifiant utilisateur de la personne qui a
309	demand� le document, issu d'une authentification HTTP.
310	Ce m�me identifiant est en g�n�ral fourni aux scripts CGI par
311	l'interm�diaire de la valeur de la variable d'environnement
312	<code>REMOTE_USER</code>. Si le statut de la requ�te (voir plus loin)
313	est 401, cette identifiant n'est pas fiable car l'utilisateur n'est
314	pas encore authentifi�. Si le document n'est pas prot�g� par
315	mot de passe, cette partie d'information sera repr�sent�e par
316	"<code>-</code>", comme la partie pr�c�dente.</dd>
317
318        <dt><code>[10/Oct/2000:13:55:36 -0700]</code>
319        (<code>%t</code>)</dt>
320
321        <dd>
322          L'heure � laquelle la requ�te a �t� re�ue.
323          Le format est le suivant :
324
325          <p class="indent">
326            <code>[jour/mois/ann�e:heure:minutes:secondes zone]<br />
327             jour = 2*chiffre<br />
328             mois = 3*lettre<br />
329             ann�e = 4*chiffre<br />
330             heure = 2*chiffre<br />
331             minutes = 2*chiffre<br />
332             secondes = 2*chiffre<br />
333             zone = (`+' | `-') 4*chiffre</code>
334          </p>Il est possible de modifier le format d'affichage de l'heure
335	  en sp�cifiant <code>%{format}t</code> dans la cha�ne de format du
336	  journal, o� <code>format</code> est une cha�ne de format
337	  de la forme de celle de la fonction <code>strftime(3)</code>
338	  de la biblioth�que C standard, ou choisie parmi les
339	  formats sp�ciaux support�s. Pour plus de d�tails,
340	  reportez-vous aux. <a href="mod/mod_log_config.html#formats">cha�nes de format</a>
341	  de <code class="module"><a href="/mod/mod_log_config.html">mod_log_config</a></code>.
342        </dd>
343
344        <dt><code>"GET /apache_pb.gif HTTP/1.0"</code>
345        (<code>\"%r\"</code>)</dt>
346
347        <dd>La ligne de la requ�te du client est plac�e entre guillemets.
348	Elle contient de nombreuses informations utiles. Tout d'abord, la
349	m�thode utilis�e par le client est <code>GET</code>. Ensuite, le
350	client a demand� la ressource <code>/apache_pb.gif</code>, et enfin,
351	le client a utilis� le protocole <code>HTTP/1.0</code>. Il est aussi
352	possible d'enregistrer s�par�ment une ou plusieurs parties de la
353	requ�te. Par exemple, la cha�ne de format "<code>%m %U %q %H</code>"
354	va enregistrer la m�thode, le chemin, la cha�ne de la requ�te et le
355	protocole, ce qui donnera le m�me r�sultat que
356	"<code>%r</code>".</dd>
357
358        <dt><code>200</code> (<code>%&gt;s</code>)</dt>
359
360        <dd>C'est le code de statut que le serveur retourne au client. Cette
361	information est tr�s importante car elle indique si la requ�te a fait
362	l'objet d'une r�ponse positive (codes commen�ant par 2), une
363	redirection (codes commen�ant par 3), une erreur due au client (codes
364	commen�ant par 4), ou une erreur due au serveur (codes commen�ant
365	par 5). Vous trouverez la liste compl�te des codes de statut possibles
366	dans la <a href="http://www.w3.org/Protocols/rfc2616/  rfc2616.txt">specification HTTP</a> (RFC2616 section 10).</dd>
367
368        <dt><code>2326</code> (<code>%b</code>)</dt>
369
370        <dd>La derni�re partie indique la taille de l'objet retourn� au client,
371	en-t�tes non compris. Si aucun contenu n'a �t� retourn� au client, cette
372	partie contiendra "<code>-</code>". Pour indiquer l'absence de contenu
373	par "<code>0</code>", utilisez <code>%B</code> au lieu de
374	<code>%b</code>.</dd>
375      </dl>
376    
377
378    <h3><a name="combined" id="combined">Combined Log Format (Format de journalisation combin�)</a></h3>
379      
380
381      <p>Une autre cha�ne de format couramment utilis�e est le
382      "Combined Log Format" (Format de journalisation combin�). Il s'utilise
383      comme suit :</p>
384
385      <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
386CustomLog log/access_log combined</pre>
387
388
389      <p>Ce format est identique au Common Log Format, avec deux champs
390      suppl�mentaires. Chacun de ces deux champs utilise la directive
391      commen�ant par le caract�re "%" <code>%{<em>header</em>}i</code>,
392      o� <em>header</em> peut �tre n'importe quel en-t�te de requ�te HTTP.
393      Avec ce format, le journal des acc�s se pr�sentera comme suit :</p>
394
395      <div class="example"><p><code>
396        127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
397        /apache_pb.gif HTTP/1.0" 200 2326
398        "http://www.example.com/start.html" "Mozilla/4.08 [en]
399        (Win98; I ;Nav)"
400      </code></p></div>
401
402      <p>Les champs suppl�mentaires sont :</p>
403
404      <dl>
405        <dt><code>"http://www.example.com/start.html"</code>
406        (<code>\"%{Referer}i\"</code>)</dt>
407
408        <dd>L'en-t�te "Referer" (sic) de la requ�te HTTP. Il indique le site
409	depuis lequel le client pr�tend avoir lanc� sa requ�te. (Ce doit �tre
410	la page qui contient un lien vers <code>/apache_pb.gif</code> ou
411	inclut ce dernier fichier).</dd>
412
413        <dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code>
414        (<code>\"%{User-agent}i\"</code>)</dt>
415
416        <dd>L'en-t�te User-Agent de la requ�te HTTP. C'est une information
417	d'identification que le navigateur du client envoie � propos
418	de lui-m�me.</dd>
419      </dl>
420    
421
422    <h3><a name="multiple" id="multiple">Journaux d'acc�s multiples</a></h3>
423      
424
425      <p>Plusieurs journaux d'acc�s peuvent �tre cr��s en sp�cifiant tout
426      simplement plusieurs directives
427      <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> dans le
428      fichier de configuration. Par exemple, les directives suivantes vont
429      cr�er trois journaux d'acc�s. Le premier contiendra les informations
430      de base CLF, le second les informations du Referer, et le troisi�me
431      les informations sur le navigateur. Les deux derni�res directives
432      <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> montrent
433      comment simuler les effets des directives <code>ReferLog</code> et
434      <code>AgentLog</code>.</p>
435
436      <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
437CustomLog logs/access_log common
438CustomLog logs/referer_log "%{Referer}i -&gt; %U"
439CustomLog logs/agent_log "%{User-agent}i"</pre>
440
441
442      <p>Cet exemple montre aussi qu'il n'est pas obligatoire d'associer
443      une cha�ne de format � un alias au moyen de la directive
444      <code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code>. Elle peut
445      �tre d�finie directement dans la ligne de la directive
446      <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code>.</p>
447    
448
449    <h3><a name="conditional" id="conditional">Journalisation conditionnelle</a></h3>
450      
451
452      <p>Il est parfois souhaitable d'exclure certaines entr�es des journaux
453      d'acc�s en fonction des caract�ristiques de la requ�te du client. On
454      peut ais�ment accomplir ceci � l'aide des
455      <a href="env.html">variables d'environnement</a>. Tout d'abord, une
456      variable d'environnement doit �tre d�finie pour indiquer que la
457      requ�te remplit certaines conditions. Pour ceci, on utilise en g�n�ral
458      la directive <code class="directive"><a href="/mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>,
459      puis la clause <code>env=</code> de la directive
460      <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> pour inclure
461      ou exclure les requ�tes pour lesquelles
462      la variable d'environnement est d�finie.
463      Quelques exemples :</p>
464
465      <pre class="prettyprint lang-config"># Marque les requ�tes en provenance de l'interface loop-back
466SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
467# Marque les requ�tes pour le fichier robots.txt
468SetEnvIf Request_URI "^/robots\.txt$" dontlog
469# Journalise toutes les autres requ�tes
470CustomLog logs/access_log common env=!dontlog</pre>
471
472
473      <p>Autre exemple, imaginons l'enregistrement des requ�tes en provenance
474      d'utilisateurs de langue anglaise dans un journal, et celles des autres
475      utilisateurs dans un autre journal.</p>
476
477      <pre class="prettyprint lang-config">        SetEnvIf Accept-Language "en" english<br />
478        CustomLog logs/english_log common env=english<br />
479        CustomLog logs/non_english_log common env=!english</pre>
480
481
482	<p>Dans le contexte d'une mise en cache, il peut �tre
483	int�ressant de conna�tre l'efficacit� du cache. Pour y parvenir,
484	on pourrait utiliser cette m�thode simple :</p>
485
486      <pre class="prettyprint lang-config">SetEnv CACHE_MISS 1
487LogFormat "%h %l %u %t "%r " %&gt;s %b %{CACHE_MISS}e" common-cache
488CustomLog logs/access_log common-cache</pre>
489
490
491      <p><code class="module"><a href="/mod/mod_cache.html">mod_cache</a></code> va s'ex�cuter avant
492      <code class="module"><a href="/mod/mod_env.html">mod_env</a></code>, et si son action est couronn�e de
493      succ�s, il d�livrera le contenu sans faire appel � ce dernier. Si
494      l'URL se trouve dans le cache, la valeur journalis�e sera alors
495      <code>-</code>, tandis que dans le cas contraire elle sera
496      <code>1</code>.</p>
497
498      <p>En plus de la syntaxe <code>env=</code>, la directive <code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code> supporte les
499      valeurs de journalisation conditionnelles bas�es sur le code de la
500      r�ponse HTTP :</p>
501
502      <pre class="prettyprint lang-config">LogFormat "%400,501{User-agent}i" browserlog
503LogFormat "%!200,304,302{Referer}i" refererlog</pre>
504
505
506      <p>Dans le premier exemple, le <code>User-agent</code> sera
507      enregistr� si le code d'�tat HTTP est 400 ou 501. Dans le cas
508      contraire, c'est un caract�re "-" qui sera enregistr� � la place.
509      Dans le second exemple, le <code>Referer</code> sera enregistr� si
510      le code d'�tat HTTP n'est <strong>pas</strong> 200, 204, ou 302
511      (remarquez le caract�re "!" avant les codes d'�tat).</p>
512
513      <p>Bien que nous venions de montrer que la journalisation conditionnelle
514      est souple et tr�s puissante, cette m�thode de contr�le du contenu des
515      journaux n'est pas la seule. Les fichiers journaux sont plus utiles
516      quand ils contiennent un enregistrement complet de l'activit� du serveur,
517      et il est souvent plus ais� de simplement traiter � posteriori les fichiers
518      journaux pour supprimer les requ�tes que vous ne voulez pas y voir
519      appara�tre.</p>
520    
521  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
522<div class="section">
523<h2><a name="rotation" id="rotation">Rotation des journaux</a></h2>
524    
525
526    <p>M�me dans le cas d'un serveur mod�r�ment sollicit�, la quantit�
527    d'informations stock�es dans les fichiers journaux est tr�s importante.
528    Le fichier journal des acc�s grossit en g�n�ral d'1 Mo ou plus toutes
529    les 10000 requ�tes. Il est par cons�quent n�cessaire d'effectuer
530    p�riodiquement la rotation des journaux en d�pla�ant ou supprimant les
531    fichiers correspondants. On ne peut pas le faire pendant que le serveur
532    est en cours d'ex�cution, car Apache httpd va continuer � �crire dans l'ancien
533    fichier journal aussi longtemps qu'il le maintiendra ouvert.
534    C'est pourquoi le serveur doit �tre
535    <a href="stopping.html">red�marr�</a> apr�s le d�placement ou la
536    suppression des fichiers journaux de fa�on � ce qu'il en ouvre
537    de nouveaux.</p>
538
539    <p>Avec un red�marrage <em>graceful</em>, on peut faire en sorte que le
540    serveur ouvre de nouveaux fichiers journaux sans perdre de connexions
541    existantes ou en cours avec les clients. Cependant, pour que ceci soit
542    possible, le serveur doit continuer � �crire dans les anciens fichiers
543    journaux pendant qu'il termine le traitement des requ�tes en cours.
544    Il est donc n�cessaire d'attendre un certain temps apr�s le r�d�marrage
545    avant d'effectuer tout traitement sur les fichiers journaux. Voici un
546    sc�nario typique dans lequel on effectue une simple rotation des
547    journaux en compressant les anciens fichiers correspondants afin
548    de gagner de l'espace disque :</p>
549
550    <div class="example"><p><code>
551      mv access_log access_log.old<br />
552      mv error_log error_log.old<br />
553      apachectl graceful<br />
554      sleep 600<br />
555      gzip access_log.old error_log.old
556    </code></p></div>
557
558    <p>La section suivante pr�sente une autre m�thode de rotation des journaux
559    qui consiste � utiliser les
560    <a href="#piped">journaux redirig�s</a>.</p>
561  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
562<div class="section">
563<h2><a name="piped" id="piped">Journaux redirig�s</a></h2>
564    
565
566    <p>Nous avons vu que le d�mon httpd �crivait les informations de
567    journalisation des erreurs et des acc�s dans un fichier journal ;
568    il peut aussi
569    rediriger ces informations vers un autre processus par l'interm�diaire d'un
570    tube de communication (pipe). Cette fonctionnalit� am�liore
571    consid�rablement la souplesse de la journalisation, sans ajouter de code
572    au serveur principal. Pour rediriger les informations de journalisation
573    vers un tube de communication, remplacez simplement le nom de fichier
574    journal par
575    le caract�re pipe "<code>|</code>", suivi du nom de l'ex�cutable qui va
576    recueillir les entr�es de journal sur son entr�e
577    standard. Le serveur va
578    lancer le processus de redirection des journaux au moment du d�marrage du
579    serveur, et le relancera s'il cesse de fonctionner
580    pendant l'ex�cution du serveur.
581    (Nous d�nommons cette technique "journalisation
582    redirig�e fiable" gr�ce � cette derni�re fonctionnalit�.)</p>
583
584    <p>Les processus de journalisation redirig�e sont lanc�s par le processus
585    httpd parent, et h�ritent de l'UID de ce dernier. Cela signifie que les
586    programmes de journalisation dirig�e s'ex�cutent g�n�ralement en tant que
587    root. Il est donc tr�s important que ces programmes soient simples et
588    s�curis�s.</p>
589
590    <p>Un des grands avantages de la journalisation redirig�e est la possibilit�
591    d'effectuer la rotation des journaux sans avoir � red�marrer le serveur. Pour
592    accomplir cette t�che, le serveur HTTP Apache fournit un programme simple
593    appel� <code class="program"><a href="/programs/rotatelogs.html">rotatelogs</a></code>. Par exemple, pour une rotation des
594    journaux toutes les 24 heures, ajoutez ces lignes :</p>
595
596    <pre class="prettyprint lang-config">CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common</pre>
597
598
599    <p>Notez que l'ensemble de la commande qui sera appel�e par le tube de
600    communication a �t� plac�e entre guillemets. Bien que cet exemple
601    concerne le journal des acc�s, la m�me technique peut �tre utilis�e
602    pour le journal des erreurs.</p>
603
604    <p>Il existe un autre programme de rotation des journaux similaire mais
605    beaucoup plus souple : il s'agit de "cronolog", non fourni par Apache,
606    mais disponible <a href="http://www.cronolog.org/">ici</a>.</p>
607
608    <p>Comme la journalisation conditionnelle, la journalisation redirig�e est
609    un outil tr�s puissant, mais si elle existe, il est pr�f�rable d'utiliser
610    une solution plus simple comme le traitement � posteriori hors ligne.</p>
611
612
613  <p>Par d�faut, le processus de redirection du journal est lanc� sans
614  invoquer un shell. Pour invoquer un shell, utilisez "<code>|$</code>"
615  au lieu de "<code>|</code>" (en g�n�ral avec <code>/bin/sh -c</code>)
616  :</p>
617
618    <pre class="prettyprint lang-config"># Invocation de "rotatelogs" en utilisant un shell
619CustomLog "|$/usr/local/apache/bin/rotatelogs   /var/log/access_log 86400" common</pre>
620
621
622
623    <p>Il s'agissait du comportement par d�faut sous Apache 2.2. Selon
624    les sp�cificit�s du shell, ceci peut g�n�rer un processus shell
625    suppl�mentaire pour toute la dur�e du programme de redirection du
626    journal, et induire des probl�mes de gestion de signaux au cours du
627    red�marrage. La notation "<code>||</code>" est aussi support�e pour
628    des raisons de compatibilit� avec Apache 2.2 et est �quivalente �
629    "<code>|</code>".</p>
630    </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
631<div class="section">
632<h2><a name="virtualhost" id="virtualhost">H�tes virtuels</a></h2>
633    
634
635    <p>Lorsqu'un serveur poss�de plusieurs <a href="vhosts/">h�tes virtuels</a>, il existe de nombreuses solutions pour g�rer
636    les fichiers journaux. Par exemple, on peut utiliser les journaux comme
637    s'il s'agissait d'un serveur avec un seul h�te. Il suffit pour cela de
638    placer les directives de journalisation en dehors des sections
639    <code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> au niveau
640    du serveur principal, ce qui a pour effet de journaliser toutes les
641    requ�tes dans le m�me journal des acc�s et des erreurs. Cette technique
642    est cependant inappropri�e pour recueillir des statistiques sur chaque
643    h�te virtuel individuellement.</p>
644
645    <p>Si des directives <code class="directive"><a href="/mod/mod_log_config.html#customlog">CustomLog</a></code> ou
646    <code class="directive"><a href="/mod/core.html#errorlog">ErrorLog</a></code> sont plac�es dans une section
647    <code class="directive"><a href="/mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>, toutes les
648    requ�tes ou erreurs pour cet h�te virtuel ne seront enregistr�es que dans
649    le fichier sp�cifi�. Tout h�te virtuel qui ne poss�de pas de directives de
650    journalisation verra ses requ�tes enregistr�es dans le journal du serveur
651    principal. Cette technique est appropri�e pour un petit nombre d'h�tes
652    virtuels, mais si ce nombre est important, elle peut devenir compliqu�e �
653    g�rer. En outre, des probl�mes de <a href="vhosts/fd-limits.html">nombre de descripteurs
654    de fichiers insuffisant</a> peuvent rapidement appara�tre.</p>
655
656    <p>Il existe un tr�s bon compromis pour le journal des acc�s. En int�grant
657    les informations � propos de l'h�te virtuel � la cha�ne de format du
658    journal, il est possible de journaliser tous les h�tes dans le m�me
659    journal, puis de s�parer ult�rieurement le journal en plusieurs journaux
660    individuels. Consid�rons par exemple les directives suivantes :</p>
661
662    <pre class="prettyprint lang-config">LogFormat "%v %l %u %t \"%r\" %&gt;s %b" comonvhost
663CustomLog logs/access_log comonvhost</pre>
664
665
666    <p>Le champ <code>%v</code> sert � enregistrer le nom de l'h�te virtuel qui
667    traite la requ�te. Un programme tel que <a href="programs/other.html">split-logfile</a> peut ensuite �tre utilis�
668    pour g�n�rer "� froid" autant de journaux que d'h�tes virtuels.</p>
669  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
670<div class="section">
671<h2><a name="other" id="other">Autres fichiers journaux</a></h2>
672    
673
674    <table class="related"><tr><th>Modules Apparent�s</th><th>Directives Apparent�es</th></tr><tr><td><ul><li><code class="module"><a href="/mod/mod_logio.html">mod_logio</a></code></li><li><code class="module"><a href="/mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="/mod/mod_log_forensic.html">mod_log_forensic</a></code></li><li><code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td><ul><li><code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="/mod/mod_log_config.html#bufferedlogs">BufferedLogs</a></code></li><li><code class="directive"><a href="/mod/mod_log_forensic.html#forensiclog">ForensicLog</a></code></li><li><code class="directive"><a href="/mod/mpm_common.html#pidfile">PidFile</a></code></li><li><code class="directive"><a href="/mod/mod_cgi.html#scriptlog">ScriptLog</a></code></li><li><code class="directive"><a href="/mod/mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></code></li><li><code class="directive"><a href="/mod/mod_cgi.html#scriptloglength">ScriptLogLength</a></code></li></ul></td></tr></table>
675
676    <h3>Enregistrement du nombre r�el d'octets envoy�s et re�us</h3>
677      
678
679      <p>Le module <code class="module"><a href="/mod/mod_logio.html">mod_logio</a></code> fournit deux champs
680      <code class="directive"><a href="/mod/mod_log_config.html#logformat">LogFormat</a></code> suppl�mentaires
681      (%I et %O) qui permettent d'enregistrer le nombre r�el d'octets re�us et
682      envoy�s sur le r�seau.</p>
683    
684
685    <h3>Journalisation de style investigation judiciaire (forensic logging)</h3>
686      
687
688      <p>Le module <code class="module"><a href="/mod/mod_log_forensic.html">mod_log_forensic</a></code> permet la journalisation
689      � des fins d'investigation judiciaire des requ�tes des clients. La
690      journalisation est effectu�e avant et apr�s le traitement de la requ�te,
691      qui fait donc l'objet de deux entr�es dans le journal. Le g�n�rateur de
692      journaux d'investigation est tr�s strict et ne permet aucune
693      personnalisation. C'est un inestimable outil de d�bogage et de s�curit�.</p>
694    
695
696    <h3><a name="pidfile" id="pidfile">Fichier PID</a></h3>
697      
698
699      <p>Au d�marrage, le d�mon httpd Apache enregistre l'identifiant du
700      processus httpd parent dans le fichier <code>logs/httpd.pid</code>.
701      Le nom de ce fichier peut �tre modifi� � l'aide de la directive
702      <code class="directive"><a href="/mod/mpm_common.html#pidfile">PidFile</a></code>. Cet identifiant
703      permet � l'administrateur de red�marrer et arr�ter le d�mon en
704      envoyant des signaux au processus parent ; sous Windows, vous devez
705      utiliser l'option de ligne de commande -k. Pour plus de d�tails,
706      consulter la page <a href="stopping.html">Arr�t et red�marrage</a>.</p>
707    
708
709    <h3><a name="scriptlog" id="scriptlog">Journal des scripts</a></h3>
710      
711
712      <p>Afin de faciliter le d�bogage, la directive
713      <code class="directive"><a href="/mod/mod_cgi.html#scriptlog">ScriptLog</a></code> vous permet
714      d'enregistrer les entr�es et sorties des scripts CGI. Elle ne doit �tre
715      utilis�e que pendant la phase de test, et en aucun cas sur un
716      serveur en production. Vous trouverez plus d'informations dans la
717      documentation du module <a href="mod/mod_cgi.html">mod_cgi</a>.</p>
718    
719    
720  </div></div>
721<div class="bottomlang">
722<p><span>Langues Disponibles: </span><a href="/en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
723<a href="/fr/logs.html" title="Fran�ais">&nbsp;fr&nbsp;</a> |
724<a href="/ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
725<a href="/ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
726<a href="/tr/logs.html" hreflang="tr" rel="alternate" title="T�rk�e">&nbsp;tr&nbsp;</a></p>
727</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&amp;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>
728<script type="text/javascript"><!--//--><![CDATA[//><!--
729var comments_shortname = 'httpd';
730var comments_identifier = 'http://httpd.apache.org/docs/2.4/logs.html';
731(function(w, d) {
732    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
733        d.write('<div id="comments_thread"><\/div>');
734        var s = d.createElement('script');
735        s.type = 'text/javascript';
736        s.async = true;
737        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
738        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
739    }
740    else { 
741        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
742    }
743})(window, document);
744//--><!]]></script></div><div id="footer">
745<p class="apache">Copyright 2014 The Apache Software Foundation.<br />Autoris� sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
746<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[//><!--
747if (typeof(prettyPrint) !== 'undefined') {
748    prettyPrint();
749}
750//--><!]]></script>
751</body></html>