<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="fr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Fichiers journaux - Serveur HTTP Apache Version 2.4</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">
</script>

<link href="./images/favicon.png" 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="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="./images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.4</a></div><div id="page-content"><div id="preamble"><h1>Fichiers journaux</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/logs.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/logs.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>

    <p>Pour v&eacute;ritablement g&eacute;rer un serveur web,
    il est n&eacute;cessaire de disposer d'un
    retour d'informations &agrave; propos de l'activit&eacute; et des performances du
    serveur, ainsi que de tout probl&egrave;me qui pourrait survenir. Le serveur HTTP
    Apache propose des fonctionnalit&eacute;s de journalisation souples et tr&egrave;s
    compl&egrave;tes. Ce document d&eacute;crit comment configurer ces fonctionnalit&eacute;s de
    journalisation et interpr&eacute;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 &agrave; propos de la s&eacute;curit&eacute;</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&egrave;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&eacute;s</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#virtualhost">H&ocirc;tes virtuels</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#other">Autres fichiers journaux</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="overview">Vue d'ensemble <a title="Lien permanent" href="#overview" class="permalink">&para;</a></h2>
    

  <table class="related"><tr><th>Modules Apparent&eacute;s</th><th>Directives Apparent&eacute;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></td></tr></table>

  <p>
  Le serveur HTTP Apache fournit toute une vari&eacute;t&eacute; de m&eacute;canismes
  diff&eacute;rents pour la journalisation de tout ce qui peut se passer au
  sein de votre serveur, depuis la requ&ecirc;te initiale, en passant par le
  processus de mise en correspondance des URLs, et jusqu'&agrave; la fermeture
  de la connexion, y compris toute erreur pouvant survenir au cours du
  traitement. De plus, certains modules tiers fournissent des
  fonctionnalit&eacute;s de journalisation ou ins&egrave;rent des entr&eacute;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&eacute;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 id="security">Avertissement &agrave; propos de la s&eacute;curit&eacute; <a title="Lien permanent" href="#security" class="permalink">&para;</a></h2>
    

    <p>Tout utilisateur qui a les droits en &eacute;criture sur le r&eacute;pertoire dans
    lequel Apache httpd &eacute;crit ses journaux pourra quasi
    certainement avoir acc&egrave;s &agrave; l'uid sous lequel le serveur est d&eacute;marr&eacute;, en
    l'occurrence habituellement root. N'accordez <em>PAS</em> aux utilisateurs
    l'acc&egrave;s en &eacute;criture au r&eacute;pertoire dans lequel les journaux sont stock&eacute;s
    sans savoir exactement quelles en seraient les cons&eacute;quences ; voir le
    document <a href="misc/security_tips.html">conseils sur la s&eacute;curit&eacute;</a>
    pour plus de d&eacute;tails.</p>

    <p>En outre, les journaux peuvent contenir des informations fournies
    directement par un client, sans caract&egrave;res d'&eacute;chappement. Des clients mal
    intentionn&eacute;s peuvent donc ins&eacute;rer des caract&egrave;res de contr&ocirc;le dans les
    journaux, et il convient par cons&eacute;quent d'&ecirc;tre tr&egrave;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 id="errorlog">Journal des erreurs <a title="Lien permanent" href="#errorlog" class="permalink">&para;</a></h2>
    

    <table class="related"><tr><th>Modules Apparent&eacute;s</th><th>Directives Apparent&eacute;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#errorlogformat">ErrorLogFormat</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&eacute;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&eacute;mon Apache httpd va envoyer les informations de diagnostic et
    enregistrer toutes les erreurs qui surviennent lors du traitement des
    requ&ecirc;tes. Lorsqu'un probl&egrave;me survient au d&eacute;marrage du serveur ou pendant
    son fonctionnement, la premi&egrave;re chose &agrave; faire est de regarder dans ce
    journal, car il vous renseignera souvent sur le probl&egrave;me rencontr&eacute; et
    la mani&egrave;re d'y rem&eacute;dier.</p>

    <p>Le journal des erreurs est habituellement enregistr&eacute; dans un fichier
    (en g&eacute;n&eacute;ral <code>error_log</code> sur les syst&egrave;mes de type Unix et
    <code>error.log</code> sur Windows et OS/2). Sur les syst&egrave;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&eacute;diaire d'un
    tube de communication (pipe).</p>

    <p>Le format du journal des erreurs est d&eacute;fini &agrave; l'aide de la directive <code class="directive"><a href="./mod/core.html#errorlogformat">ErrorLogFormat</a></code> avec laquelle vous pouvez
    choisir les valeurs &agrave; journaliser. Un format par d&eacute;faut sera utilis&eacute; si vous
    n'en sp&eacute;cifiez pas un. Un message de journalisation typique se pr&eacute;sente
    comme suit&nbsp;:</p>

    <div class="example"><p><code>
      [Fri Sep 09 10:42:29.902022 2011] [core:error] [pid 35708:tid 4328636416]
      [client 72.15.99.187] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error
    </code></p></div>

    <p>Le premier champ de l'entr&eacute;e du journal est la date et l'heure du
    message. Le second champ indique le module qui produit le message (core,
    dans ce cas) et le niveau de s&eacute;v&eacute;rit&eacute; de ce message. Suivent l'ID du processus
    et &eacute;ventuellement l'ID du thread du processus qui a &eacute;t&eacute; soumis &agrave; cette
    condition. Le
    troisi&egrave;me champ contient l'adresse IP du client qui a effectu&eacute; la requ&ecirc;te.
    Vient ensuite le message d'erreur d&eacute;taill&eacute;.</p>

    <div class="note"><p>Notez que certains messages qui &eacute;taient auparavant journalis&eacute;s au
    niveau <code>error</code> ont &eacute;t&eacute; r&eacute;trograd&eacute;s au niveau <code>info</code>
    dans httpd 2.4. Par exemple, les messages "File does not exist" pour les
    r&eacute;ponses 404 sont journalis&eacute;s au niveau <code>info</code> et n'appara&icirc;tront
    pas dans le journal des erreurs avec la valeur par d&eacute;faut <code>warn</code>
    de la directive <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code>. Pour
    restaurer le comportement pr&eacute;c&eacute;dent, sp&eacute;cifiez <code>LogLevel warn
    core:info</code>.</p></div>

    <p>Une grande vari&eacute;t&eacute; de messages diff&eacute;rents peuvent appara&icirc;tre dans le
    journal des erreurs. La plupart d'entre eux sont similaires &agrave; l'exemple
    ci-dessus. Le journal des erreurs peut aussi contenir des informations de
    d&eacute;bogage en provenance de scripts CGI. Toute information qu'un script CGI
    &eacute;crit sur la sortie d'erreurs standard <code>stderr</code> sera recopi&eacute;e
    telle quelle dans le journal des erreurs.</p>

     <p>Mettre un symbole <code>%L</code> dans le journal des erreurs et le
     journal des acc&egrave;s produit un ID d'entr&eacute;e de journalisation gr&acirc;ce auquel
     vous pourrez corr&eacute;ler l'entr&eacute;e du journal des erreurs avec celle du journal
     des acc&egrave;s. Si <code class="module"><a href="./mod/mod_unique_id.html">mod_unique_id</a></code> est charg&eacute;, son ID de requ&ecirc;te
     unique sera utilis&eacute; comme ID d'entr&eacute;e de journalisation.</p>

    <p>Pendant la phase de test, il est souvent utile de visualiser en continu
    le journal des erreurs afin de d&eacute;tecter tout probl&egrave;me &eacute;ventuel. Sur les
    syst&egrave;mes de type Unix, ceci s'effectue &agrave; 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 id="permodule">Journalisation par module <a title="Lien permanent" href="#permodule" class="permalink">&para;</a></h2>
    

    <p>La directive <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> permet
    de sp&eacute;cifier un niveau de s&eacute;v&eacute;rit&eacute; de journalisation pour chaque
    module. Vous pouvez ainsi r&eacute;soudre un probl&egrave;me propre &agrave; un module particulier
    en augmentant son volume de journalisation sans augmenter ce volume
    pour les autres modules. Ceci est particuli&egrave;rement utile lorsque
    vous voulez obtenir des d&eacute;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&eacute;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&eacute;n&eacute;ral est d&eacute;fini
    &agrave; info, et &agrave; <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&eacute;c&eacute;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 id="accesslog">Journal des acc&egrave;s <a title="Lien permanent" href="#accesslog" class="permalink">&para;</a></h2>
    

    <table class="related"><tr><th>Modules Apparent&eacute;s</th><th>Directives Apparent&eacute;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&egrave;s au serveur
    enregistre toutes les requ&ecirc;tes que traite
    ce dernier. La localisation et le contenu du journal des acc&egrave;s sont d&eacute;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&eacute;lection du contenu du journal. Cette section
    d&eacute;crit comment configurer le serveur pour l'enregistrement des informations
    dans le journal des acc&egrave;s.</p>

    <p>Le stockage d'informations dans le journal des acc&egrave;s
    n'est que le point de d&eacute;part de la gestion de la journalisation. L'&eacute;tape
    suivante consiste &agrave; analyser ces informations de fa&ccedil;on &agrave; pouvoir en
    extraire des statistiques utiles. L'analyse de journaux en g&eacute;n&eacute;ral est en
    dehors du sujet de ce document et ne fait pas vraiment partie int&eacute;grante
    du travail du serveur web lui-m&ecirc;me.</p>

    <p>Diff&eacute;rentes versions du d&eacute;mon Apache httpd utilisaient d'autres modules
    et directives pour contr&ocirc;ler la journalisation des acc&egrave;s, &agrave; 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&eacute;sormais les fonctionnalit&eacute;s de toutes les anciennes directives.</p>

    <p>Le format du journal des acc&egrave;s est hautement configurable. Il est
    d&eacute;fini &agrave; l'aide d'une cha&icirc;ne de format qui ressemble sensiblement &agrave; la
    cha&icirc;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&icirc;ne de format, vous pouvez vous r&eacute;f&eacute;rer au chapitre
    <a href="mod/mod_log_config.html#formats">cha&icirc;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 id="common">Format habituel du journal</h3>
      

      <p>Voici une configuration typique pour le journal des acc&egrave;s :</p>

      <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
CustomLog logs/access_log common</pre>


      <p>Ici est d&eacute;finie l'<em>identit&eacute;</em> <code>common</code> qui est
      ensuite associ&eacute;e &agrave; une cha&icirc;ne de format de journalisation particuli&egrave;re.
      La cha&icirc;ne de format est constitu&eacute;e de directives d&eacute;butant par le
      caract&egrave;re %, chacune d'entre elles indiquant au serveur d'enregistrer
      un &eacute;l&eacute;ment particulier d'information. Des caract&egrave;res litt&eacute;raux peuvent
      aussi &ecirc;tre ins&eacute;r&eacute;s dans la cha&icirc;ne de format ; il seront copi&eacute;s tels
      quels dans le flux de sortie destin&eacute; &agrave; la journalisation.
      Les guillemets (<code>"</code>) doivent &ecirc;tre &eacute;chapp&eacute;es en les faisant
      pr&eacute;c&eacute;der d'un anti-slash (<code>\</code>) afin qu'elles ne soient pas
      interpr&eacute;t&eacute;es comme la fin de la cha&icirc;ne de format. La cha&icirc;ne de format
      peut aussi contenir les caract&egrave;res de contr&ocirc;le sp&eacute;ciaux
      "<code>\n</code>" et "<code>\t</code>" pour ins&eacute;rer respectivement
      un passage &agrave; la ligne et une tabulation.</p>

      <p>La directive <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>
      d&eacute;finit un nouveau fichier journal en l'associant &agrave; l'identit&eacute;
      pr&eacute;c&eacute;demment d&eacute;finie. Le chemin du nom de fichier associ&eacute; au journal
      des acc&egrave;s est relatif au chemin d&eacute;fini par la directive
      <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code>, sauf s'il
      d&eacute;bute par un slash.</p>

      <p>La configuration ci-dessus va enregistrer les entr&eacute;es de
      journalisation selon un format connu sous le nom de
      Common Log Format (CLF) pour "Format de journalisation standard".
      Ce format standard peut &ecirc;tre produit par de nombreux serveurs web
      diff&eacute;rents et lu par de nombreux programmes d'analyse de journaux.
      Les entr&eacute;es de fichier journal g&eacute;n&eacute;r&eacute;es selon le format CLF
      ressemblent &agrave; 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&eacute;e de journal est d&eacute;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&ocirc;te distant) qui a envoy&eacute;
	la requ&ecirc;te au serveur. Si la directive
	<code class="directive"><a href="./mod/core.html#hostnamelookups">HostnameLookups</a></code> est positionn&eacute;e &agrave;
	<code>On</code>, le serveur va essayer de d&eacute;terminer le nom de l'h&ocirc;te
	et de l'enregistrer &agrave; la place de l'adresse IP. Cette configuration
	n'est cependant pas recommand&eacute;e car elle peut ralentir le serveur de
	mani&egrave;re significative. Il est par cons&eacute;quent pr&eacute;f&eacute;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&eacute;terminer les noms d'h&ocirc;te. L'adresse IP indiqu&eacute;e ici n'est pas
	n&eacute;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&eacute;e sera celle du mandataire et non
	celle de la machine &agrave; l'origine de la requ&ecirc;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&eacute;sent, l'information
	non disponible est l'identit&eacute; (RFC 1413) du client telle que d&eacute;termin&eacute;e
	par <code>identd</code> sur la machine cliente. Cette information est
	tr&egrave;s peu fiable et ne devrait jamais &ecirc;tre utilis&eacute;e, sauf dans le cas
	de r&eacute;seaux internes &eacute;troitement contr&ocirc;l&eacute;s. Le d&eacute;mon httpd ne cherchera
	d'ailleurs &agrave; obtenir cette information que si la directive
	<code class="directive"><a href="./mod/mod_ident.html#identitycheck">IdentityCheck</a></code> est positionn&eacute;e
	&agrave; <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&eacute; le document, issu d'une authentification HTTP.
	Ce m&ecirc;me identifiant est en g&eacute;n&eacute;ral fourni aux scripts CGI par
	l'interm&eacute;diaire de la valeur de la variable d'environnement
	<code>REMOTE_USER</code>. Si le statut de la requ&ecirc;te (voir plus loin)
	est 401, cette identifiant n'est pas fiable car l'utilisateur n'est
	pas encore authentifi&eacute;. Si le document n'est pas prot&eacute;g&eacute; par
	mot de passe, cette partie d'information sera repr&eacute;sent&eacute;e par
	"<code>-</code>", comme la partie pr&eacute;c&eacute;dente.</dd>

        <dt><code>[10/Oct/2000:13:55:36 -0700]</code>
        (<code>%t</code>)</dt>

        <dd>
          L'heure &agrave; laquelle la requ&ecirc;te a &eacute;t&eacute; re&ccedil;ue.
          Le format est le suivant :

          <p class="indent">
            <code>[jour/mois/ann&eacute;e:heure:minutes:secondes zone]<br>
             jour = 2*chiffre<br>
             mois = 3*lettre<br>
             ann&eacute;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&eacute;cifiant <code>%{format}t</code> dans la cha&icirc;ne de format du
	  journal, o&ugrave; <code>format</code> est une cha&icirc;ne de format
	  de la forme de celle de la fonction <code>strftime(3)</code>
	  de la biblioth&egrave;que C standard, ou choisie parmi les
	  formats sp&eacute;ciaux support&eacute;s. Pour plus de d&eacute;tails,
	  reportez-vous aux. <a href="mod/mod_log_config.html#formats">cha&icirc;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&ecirc;te du client est plac&eacute;e entre guillemets.
	Elle contient de nombreuses informations utiles. Tout d'abord, la
	m&eacute;thode utilis&eacute;e par le client est <code>GET</code>. Ensuite, le
	client a demand&eacute; la ressource <code>/apache_pb.gif</code>, et enfin,
	le client a utilis&eacute; le protocole <code>HTTP/1.0</code>. Il est aussi
	possible d'enregistrer s&eacute;par&eacute;ment une ou plusieurs parties de la
	requ&ecirc;te. Par exemple, la cha&icirc;ne de format "<code>%m %U %q %H</code>"
	va enregistrer la m&eacute;thode, le chemin, la cha&icirc;ne de la requ&ecirc;te et le
	protocole, ce qui donnera le m&ecirc;me r&eacute;sultat que
	"<code>%r</code>".</dd>

        <dt><code>200</code> (<code>%&gt;s</code>)</dt>

	<dd>C'est le code de statut que le serveur retourne au client. Cette
	information est tr&egrave;s importante car elle indique si la requ&ecirc;te a fait
	l'objet d'une r&eacute;ponse positive (codes commen&ccedil;ant par 2), une redirection
	(codes commen&ccedil;ant par 3), une erreur due au client (codes commen&ccedil;ant par
	4), ou une erreur due au serveur (codes commen&ccedil;ant par 5). Vous
	trouverez la liste compl&egrave;te des codes de statut possibles dans la
	sp&eacute;cification HTTP (<a href="https://www.rfc-editor.org/rfc/rfc2616">RFC 2616</a>) (RFC2616 section 10).</dd>

        <dt><code>2326</code> (<code>%b</code>)</dt>

        <dd>La derni&egrave;re partie indique la taille de l'objet retourn&eacute; au client,
	en-t&ecirc;tes non compris. Si aucun contenu n'a &eacute;t&eacute; retourn&eacute; 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 id="combined">Combined Log Format (Format de journalisation combin&eacute;)</h3>
      

      <p>Une autre cha&icirc;ne de format couramment utilis&eacute;e est le
      "Combined Log Format" (Format de journalisation combin&eacute;). Il s'utilise
      comme suit :</p>

      <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;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&eacute;mentaires. Chacun de ces deux champs utilise la directive
      commen&ccedil;ant par le caract&egrave;re "%" <code>%{<em>header</em>}i</code>,
      o&ugrave; <em>header</em> peut &ecirc;tre n'importe quel en-t&ecirc;te de requ&ecirc;te HTTP.
      Avec ce format, le journal des acc&egrave;s se pr&eacute;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&eacute;mentaires sont :</p>

      <dl>
        <dt><code>"http://www.example.com/start.html"</code>
        (<code>\"%{Referer}i\"</code>)</dt>

        <dd>L'en-t&ecirc;te "Referer" (sic) de la requ&ecirc;te HTTP. Il indique le site
	depuis lequel le client pr&eacute;tend avoir lanc&eacute; sa requ&ecirc;te. (Ce doit &ecirc;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&ecirc;te User-Agent de la requ&ecirc;te HTTP. C'est une information
	d'identification que le navigateur du client envoie &agrave; propos
	de lui-m&ecirc;me.</dd>
      </dl>
    

    <h3 id="multiple">Journaux d'acc&egrave;s multiples</h3>
      

      <p>Plusieurs journaux d'acc&egrave;s peuvent &ecirc;tre cr&eacute;&eacute;s en sp&eacute;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&eacute;er trois journaux d'acc&egrave;s. Le premier contiendra les informations
      de base CLF, le second les informations du Referer, et le troisi&egrave;me
      les informations sur le navigateur. Les deux derni&egrave;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\" %&gt;s %b" common
CustomLog logs/access_log common
CustomLog logs/referer_log "%{Referer}i -&gt; %U"
CustomLog logs/agent_log "%{User-agent}i"</pre>


      <p>Cet exemple montre aussi qu'il n'est pas obligatoire d'associer
      une cha&icirc;ne de format &agrave; un alias au moyen de la directive
      <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code>. Elle peut
      &ecirc;tre d&eacute;finie directement dans la ligne de la directive
      <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>.</p>
    

    <h3 id="conditional">Journalisation conditionnelle</h3>
      

      <p>Il est parfois souhaitable d'exclure certaines entr&eacute;es des journaux
      d'acc&egrave;s en fonction des caract&eacute;ristiques de la requ&ecirc;te du client. On
      peut ais&eacute;ment accomplir ceci &agrave; l'aide des
      <a href="env.html">variables d'environnement</a>. Tout d'abord, une
      variable d'environnement doit &ecirc;tre d&eacute;finie pour indiquer que la
      requ&ecirc;te remplit certaines conditions. Pour ceci, on utilise en g&eacute;n&eacute;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&ecirc;tes pour lesquelles
      la variable d'environnement est d&eacute;finie.
      Quelques exemples :</p>

      <pre class="prettyprint lang-config"># Marque les requ&ecirc;tes en provenance de l'interface loop-back
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
# Marque les requ&ecirc;tes pour le fichier robots.txt
SetEnvIf Request_URI "^/robots\.txt$" dontlog
# Journalise toutes les autres requ&ecirc;tes
CustomLog logs/access_log common env=!dontlog</pre>


      <p>Autre exemple, imaginons l'enregistrement des requ&ecirc;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
        CustomLog logs/english_log common env=english
        CustomLog logs/non_english_log common env=!english</pre>


	<p>Dans le contexte d'une mise en cache, il peut &ecirc;tre
	int&eacute;ressant de conna&icirc;tre l'efficacit&eacute; du cache. Pour y parvenir,
	on pourrait utiliser cette m&eacute;thode simple :</p>

      <pre class="prettyprint lang-config">SetEnv CACHE_MISS 1
LogFormat "%h %l %u %t "%r " %&gt;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&eacute;cuter avant
      <code class="module"><a href="./mod/mod_env.html">mod_env</a></code>, et si son action est couronn&eacute;e de
      succ&egrave;s, il d&eacute;livrera le contenu sans faire appel &agrave; ce dernier. Si
      l'URL se trouve dans le cache, la valeur journalis&eacute;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&eacute;es sur le code de la
      r&eacute;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&eacute; si le code d'&eacute;tat HTTP est 400 ou 501. Dans le cas
      contraire, c'est un caract&egrave;re "-" qui sera enregistr&eacute; &agrave; la place.
      Dans le second exemple, le <code>Referer</code> sera enregistr&eacute; si
      le code d'&eacute;tat HTTP n'est <strong>pas</strong> 200, 304, ou 302
      (remarquez le caract&egrave;re "!" avant les codes d'&eacute;tat).</p>

      <p>Bien que nous venions de montrer que la journalisation conditionnelle
      est souple et tr&egrave;s puissante, cette m&eacute;thode de contr&ocirc;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&eacute; du serveur,
      et il est souvent plus ais&eacute; de simplement traiter &agrave; posteriori les fichiers
      journaux pour supprimer les requ&ecirc;tes que vous ne voulez pas y voir
      appara&icirc;tre.</p>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="rotation">Rotation des journaux <a title="Lien permanent" href="#rotation" class="permalink">&para;</a></h2>
    

    <p>M&ecirc;me dans le cas d'un serveur mod&eacute;r&eacute;ment sollicit&eacute;, la quantit&eacute;
    d'informations stock&eacute;es dans les fichiers journaux est tr&egrave;s importante.
    Le fichier journal des acc&egrave;s grossit en g&eacute;n&eacute;ral d'1 Mo ou plus toutes
    les 10000 requ&ecirc;tes. Il est par cons&eacute;quent n&eacute;cessaire d'effectuer
    p&eacute;riodiquement la rotation des journaux en d&eacute;pla&ccedil;ant ou supprimant les
    fichiers correspondants. On ne peut pas le faire pendant que le serveur
    est en cours d'ex&eacute;cution, car Apache httpd va continuer &agrave; &eacute;crire dans l'ancien
    fichier journal aussi longtemps qu'il le maintiendra ouvert.
    C'est pourquoi le serveur doit &ecirc;tre
    <a href="stopping.html">red&eacute;marr&eacute;</a> apr&egrave;s le d&eacute;placement ou la
    suppression des fichiers journaux de fa&ccedil;on &agrave; ce qu'il en ouvre
    de nouveaux.</p>

    <p>Avec un red&eacute;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 &agrave; &eacute;crire dans les anciens fichiers
    journaux pendant qu'il termine le traitement des requ&ecirc;tes en cours.
    Il est donc n&eacute;cessaire d'attendre un certain temps apr&egrave;s le r&eacute;d&eacute;marrage
    avant d'effectuer tout traitement sur les fichiers journaux. Voici un
    sc&eacute;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&eacute;sente une autre m&eacute;thode de rotation des journaux
    qui consiste &agrave; utiliser les
    <a href="#piped">journaux redirig&eacute;s</a>.</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="piped">Journaux redirig&eacute;s <a title="Lien permanent" href="#piped" class="permalink">&para;</a></h2>
    

    <p>Nous avons vu que le d&eacute;mon httpd &eacute;crivait les informations de
    journalisation des erreurs et des acc&egrave;s dans un fichier journal ;
    il peut aussi
    rediriger ces informations vers un autre processus par l'interm&eacute;diaire d'un
    tube de communication (pipe). Cette fonctionnalit&eacute; am&eacute;liore
    consid&eacute;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&egrave;re pipe "<code>|</code>", suivi du nom de l'ex&eacute;cutable qui va
    recueillir les entr&eacute;es de journal sur son entr&eacute;e
    standard. Le serveur va
    lancer le processus de redirection des journaux au moment du d&eacute;marrage du
    serveur, et le relancera s'il cesse de fonctionner
    pendant l'ex&eacute;cution du serveur.
    (Nous d&eacute;nommons cette technique "journalisation
    redirig&eacute;e fiable" gr&acirc;ce &agrave; cette derni&egrave;re fonctionnalit&eacute;.)</p>

    <p>Les processus de journalisation redirig&eacute;e sont lanc&eacute;s par le processus
    httpd parent, et h&eacute;ritent de l'UID de ce dernier. Cela signifie que les
    programmes de journalisation dirig&eacute;e s'ex&eacute;cutent g&eacute;n&eacute;ralement en tant que
    root. Il est donc tr&egrave;s important que ces programmes soient simples et
    s&eacute;curis&eacute;s.</p>

    <p>Un des grands avantages de la journalisation redirig&eacute;e est la possibilit&eacute;
    d'effectuer la rotation des journaux sans avoir &agrave; red&eacute;marrer le serveur. Pour
    accomplir cette t&acirc;che, le serveur HTTP Apache fournit un programme simple
    appel&eacute; <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&eacute;e par le tube de
    communication a &eacute;t&eacute; plac&eacute;e entre guillemets. Bien que cet exemple
    concerne le journal des acc&egrave;s, la m&ecirc;me technique peut &ecirc;tre utilis&eacute;e
    pour le journal des erreurs.</p>

    <p>Comme la journalisation conditionnelle, la journalisation redirig&eacute;e est
    un outil tr&egrave;s puissant, mais si elle existe, il est pr&eacute;f&eacute;rable d'utiliser
    une solution plus simple comme le traitement &agrave; posteriori hors ligne.</p>


  <p>Par d&eacute;faut, le processus de redirection du journal est lanc&eacute; sans
  invoquer un shell. Pour invoquer un shell, utilisez "<code>|$</code>"
  au lieu de "<code>|</code>" (en g&eacute;n&eacute;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&eacute;faut sous Apache 2.2. Selon
    les sp&eacute;cificit&eacute;s du shell, ceci peut g&eacute;n&eacute;rer un processus shell
    suppl&eacute;mentaire pour toute la dur&eacute;e du programme de redirection du
    journal, et induire des probl&egrave;mes de gestion de signaux au cours du
    red&eacute;marrage. La notation "<code>||</code>" est aussi support&eacute;e pour
    des raisons de compatibilit&eacute; avec Apache 2.2 et est &eacute;quivalente &agrave;
    "<code>|</code>".</p>

    <div class="note"><h3>Note &agrave; propos de la plateforme Windows</h3>
    <p>Notez que sous Windows, la m&eacute;moire allou&eacute;e au bureau (desktop
    heap) peut devenir insuffisante si vous utilisez de nombreux
    processus vers lesquels sont redirig&eacute;s des journaux via un pipe, et
    ceci particuli&egrave;rement si httpd s'ex&eacute;cute en tant que service. La
    quantit&eacute; de m&eacute;moire du bureau allou&eacute;e &agrave; chaque service est sp&eacute;cifi&eacute;e
    dans le troisi&egrave;me argument du param&egrave;tre <code>SharedSection</code>
    de la cl&eacute; de registre
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\SubSystems\Windows.
    <strong>Modifiez cette valeur avec prudence</strong> ; les
    pr&eacute;cautions d'usage s'imposent lorsqu'on modifie la base de registre,
    mais vous pouvez aussi saturer la m&eacute;moire du bureau si vous
    sp&eacute;cifiez une valeur trop &eacute;lev&eacute;e.</p>
    </div>
    </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="virtualhost">H&ocirc;tes virtuels <a title="Lien permanent" href="#virtualhost" class="permalink">&para;</a></h2>
    

    <p>Lorsqu'un serveur poss&egrave;de plusieurs <a href="vhosts/">h&ocirc;tes virtuels</a>, il existe de nombreuses solutions pour g&eacute;rer
    les fichiers journaux. Par exemple, on peut utiliser les journaux comme
    s'il s'agissait d'un serveur avec un seul h&ocirc;te. Il suffit pour cela de
    placer les directives de journalisation en dehors des sections
    <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> au niveau
    du serveur principal, ce qui a pour effet de journaliser toutes les
    requ&ecirc;tes dans le m&ecirc;me journal des acc&egrave;s et des erreurs. Cette technique
    est cependant inappropri&eacute;e pour recueillir des statistiques sur chaque
    h&ocirc;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&eacute;es dans une section
    <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>, toutes les
    requ&ecirc;tes ou erreurs pour cet h&ocirc;te virtuel ne seront enregistr&eacute;es que dans
    le fichier sp&eacute;cifi&eacute;. Tout h&ocirc;te virtuel qui ne poss&egrave;de pas de directives de
    journalisation verra ses requ&ecirc;tes enregistr&eacute;es dans le journal du serveur
    principal. Cette technique est appropri&eacute;e pour un petit nombre d'h&ocirc;tes
    virtuels, mais si ce nombre est important, elle peut devenir compliqu&eacute;e &agrave;
    g&eacute;rer. En outre, des probl&egrave;mes de <a href="vhosts/fd-limits.html">nombre de descripteurs
    de fichiers insuffisant</a> peuvent rapidement appara&icirc;tre.</p>

    <p>Il existe un tr&egrave;s bon compromis pour le journal des acc&egrave;s. En int&eacute;grant
    les informations &agrave; propos de l'h&ocirc;te virtuel &agrave; la cha&icirc;ne de format du
    journal, il est possible de journaliser tous les h&ocirc;tes dans le m&ecirc;me
    journal, puis de s&eacute;parer ult&eacute;rieurement le journal en plusieurs journaux
    individuels. Consid&eacute;rons par exemple les directives suivantes :</p>

    <pre class="prettyprint lang-config">LogFormat "%v %p %h %l %u %t \"%r\" %&gt;s %b" commonvhost
CustomLog logs/access_log commonvhost</pre>


    <p>Le champ <code>%v</code> sert &agrave; enregistrer le nom de l'h&ocirc;te virtuel qui
    traite la requ&ecirc;te. Un programme tel que <a href="programs/split-logfile.html">split-logfile</a> peut ensuite &ecirc;tre utilis&eacute;
    pour g&eacute;n&eacute;rer "&agrave; froid" autant de journaux que d'h&ocirc;tes virtuels.</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="other">Autres fichiers journaux <a title="Lien permanent" href="#other" class="permalink">&para;</a></h2>
    

    <table class="related"><tr><th>Modules Apparent&eacute;s</th><th>Directives Apparent&eacute;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&eacute;el d'octets envoy&eacute;s et re&ccedil;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&eacute;mentaires
      (%I et %O) qui permettent d'enregistrer le nombre r&eacute;el d'octets re&ccedil;us et
      envoy&eacute;s sur le r&eacute;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
      &agrave; des fins d'investigation judiciaire des requ&ecirc;tes des clients. La
      journalisation est effectu&eacute;e avant et apr&egrave;s le traitement de la requ&ecirc;te,
      qui fait donc l'objet de deux entr&eacute;es dans le journal. Le g&eacute;n&eacute;rateur de
      journaux d'investigation est tr&egrave;s strict et ne permet aucune
      personnalisation. C'est un inestimable outil de d&eacute;bogage et de s&eacute;curit&eacute;.</p>
    

    <h3 id="pidfile">Fichier PID</h3>
      

      <p>Au d&eacute;marrage, le d&eacute;mon httpd Apache enregistre l'identifiant du
      processus httpd parent dans le fichier <code>logs/httpd.pid</code>.
      Le nom de ce fichier peut &ecirc;tre modifi&eacute; &agrave; l'aide de la directive
      <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>. Cet identifiant
      permet &agrave; l'administrateur de red&eacute;marrer et arr&ecirc;ter le d&eacute;mon en
      envoyant des signaux au processus parent ; sous Windows, vous devez
      utiliser l'option de ligne de commande -k. Pour plus de d&eacute;tails,
      consulter la page <a href="stopping.html">Arr&ecirc;t et red&eacute;marrage</a>.</p>
    

    <h3 id="scriptlog">Journal des scripts</h3>
      

      <p>Afin de faciliter le d&eacute;bogage, la directive
      <code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code> vous permet
      d'enregistrer les entr&eacute;es et sorties des scripts CGI. Elle ne doit &ecirc;tre
      utilis&eacute;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">&nbsp;en&nbsp;</a> |
<a href="./fr/logs.html" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/logs.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Autoris&eacute; sous <a href="https://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="https://cwiki.apache.org/confluence/display/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Signaler un bug</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>