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="<-" alt="<-" src="/images/left.gif" /></a></div> 21<div id="path"> 22<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></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"> en </a> | 25<a href="/fr/logs.html" title="Fran�ais"> fr </a> | 26<a href="/ja/logs.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 27<a href="/ko/logs.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 28<a href="/tr/logs.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </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\" %>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>%>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\" %>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\" %>s %b" common 437CustomLog logs/access_log common 438CustomLog logs/referer_log "%{Referer}i -> %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 " %>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"><VirtualHost></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"><VirtualHost></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\" %>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"> en </a> | 723<a href="/fr/logs.html" title="Fran�ais"> fr </a> | 724<a href="/ja/logs.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 725<a href="/ko/logs.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 726<a href="/tr/logs.html" hreflang="tr" rel="alternate" title="T�rk�e"> tr </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&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>