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