github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/logs.html.fr (about)

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