<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_log_config - 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" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<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>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_log_config</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_log_config.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_log_config.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_log_config.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_log_config.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/mod_log_config.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Journalisation des requêtes envoyées au
serveur</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>log_config_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_log_config.c</td></tr></table>
<h3>Sommaire</h3>

    <p>Ce module apporte une grande souplesse dans la journalisation des
    requêtes des clients. Les journaux sont écrits sous un format
    personnalisable, et peuvent être enregistrés directement dans un
    fichier, ou redirigés vers un programme externe. La journalisation
    conditionnelle est supportée, si bien que des requêtes individuelles
    peuvent être incluses ou exclues des journaux en fonction de leur
    caractéristiques.</p>

    <p>Ce module fournit trois directives : <code class="directive"><a href="#transferlog">TransferLog</a></code> crée un fichier
    journal, <code class="directive"><a href="#logformat">LogFormat</a></code>
    définit un format personnalisé, et <code class="directive"><a href="#customlog">CustomLog</a></code> définit un fichier journal et un format en
    une seule étape. Pour journaliser les requêtes dans plusieurs
    fichiers, vous pouvez utiliser plusieurs fois les directives
    <code class="directive">TransferLog</code> et
    <code class="directive">CustomLog</code> dans chaque serveur.</p>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#formats">Formats de journaux personnalisés</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#security">Considérations concernant la
sécurité</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#bufferedlogs">BufferedLogs</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#customlog">CustomLog</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#globallog">GlobalLog</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#logformat">LogFormat</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#transferlog">TransferLog</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_log_config">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_log_config">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><a href="../logs.html">Les fichiers journaux
d'Apache</a></li>
<li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="formats" id="formats">Formats de journaux personnalisés</a></h2>

    <p>L'argument format des directives <code class="directive"><a href="#logformat">LogFormat</a></code> et <code class="directive"><a href="#customlog">CustomLog</a></code> est une chaîne de
    caractères. Cette chaîne définit le format de la journalisation des
    requêtes dans le fichier journal. Elle peut contenir des caractères
    littéraux qui seront reproduits dans le fichier journal, et les
    caractères de contrôle de style C "\n" et "\t" représentant
    respectivement une nouvelle ligne et une tabulation. Les guillemets
    et les anti-slashes littéraux doivent être échappés à l'aide
    d'anti-slashes.</p>

    <p>Les caractéristiques de la requête en elle-même sont journalisées
    en insérant des directives "<code>%</code>" dans la chaîne de
    format, celles-ci étant remplacées dans le fichier journal par
    certaines valeurs comme suit :</p>

    <table class="bordered"><tr class="header"><th>Chaîne&nbsp;de&nbsp;format</th>
        <th>Description</th></tr>
<tr><td><code>%%</code></td>
        <td>Le signe "pourcentage"</td></tr>
<tr class="odd"><td><code>%a</code></td>
        <td>L'adresse IP distante (voir le module
	<code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>).</td></tr>
<tr><td><code>%{c}a</code></td>
        <td>Adresse IP distante de la connexion(voir le module
	<code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>)</td></tr>
<tr class="odd"><td><code>%A</code></td>
        <td>L'adresse IP locale</td></tr>
<tr><td><code>%B</code></td>
        <td>La taille de la réponse en octets, en excluant les en-têtes
	HTTP.</td></tr>
<tr class="odd"><td><code>%b</code></td>
        <td>La taille de la réponse en octets, en excluant les en-têtes
	HTTP. Au format CLF , c'est à dire un '<code>-</code>' à la
	place d'un 0 lorsqu'aucun octet n'est renvoyé.</td></tr>
<tr><td><code>%{<var>NOMVAR</var>}C</code></td>
        <td>Le contenu du cookie <var>NOMVAR</var> dans la requête
	envoyée au serveur. Seuls les cookies version 0 sont pleinement
	supportés.</td></tr>
<tr class="odd"><td><code>%D</code></td>
        <td>Le temps mis à servir la requête, en
	microsecondes.</td></tr>
<tr><td><code>%{<var>NOMVAR</var>}e</code></td>
        <td>Le contenu de la variable d'environnement
	<var>NOMVAR</var></td></tr>
<tr class="odd"><td><code>%f</code></td>
        <td>Nom de fichier</td></tr>
<tr><td><code>%h</code></td>
        <td>Serveur distant. Contiendra l'adresse IP si la directive
	<code class="directive"><a href="../mod/core.html#hostnamelookups">HostnameLookups</a></code> est définie
	à <code>Off</code>, ce qui est sa valeur par défaut. Si cette
	adresse IP n'est enregistrée que pour certains serveurs, vous
	avez probablement défini des directives de contrôle d'accès qui
	mentionnent ces derniers par leurs noms. Voir la <a href="mod_authz_host.html#reqhost">documentation de Require
	host</a>.</td></tr>
<tr class="odd"><td><code>%{c}h</code></td>
	<td>Semblable à <code>%h</code>, mais exploite toujours le nom d'hôte de
	la connection TCP sous-jacente, en ignorant toute modification réalisée
	sur le nom d'hôte distant par des modules tels que
	<code class="module"><a href="../mod/mod_remoteip.html">mod_remoteip</a></code>.</td></tr>
<tr><td><code>%H</code></td>
        <td>Le protocole de la requête</td></tr>
<tr class="odd"><td><code>%{<var>NOMVAR</var>}i</code></td>
        <td>Le contenu des lignes d'en-tête
	<code><var>NOMVAR</var>:</code> dans la requête envoyée au
	serveur. Ces en-têtes sont ajoutés par d'autres modules (par
	exemple <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>). Si vous êtes intéressé
	par ce qu'était l'en-tête de la requête avant d'être modifié
	par la plupart des modules, utilisez
	<code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> pour copier l'en-tête dans une
	variable d'environnement interne et journaliser sa valeur via
	le champ <code>%{<var>VARNAME</var>}e</code> décrit plus haut.

        </td></tr>
<tr><td><code>%k</code></td>
        <td>Nombre de requêtes persistantes en cours pour cette
	connexion. Interessant si la directive <code class="directive"><a href="../mod/core.html#keepalive">KeepAlive</a></code> est utilisée ; par exemple,
	'1' signifie la première requête après la requête initiale, '2'
	la seconde, etc... ; autrement, il s'agit toujours de 0
	(indiquant la requête initiale).</td></tr>
<tr class="odd"><td><code>%l</code></td>
        <td>Le nom de connexion distant (en provenance d'identd, si
	disponible). Affiche un tiret, sauf si
	<code class="module"><a href="../mod/mod_ident.html">mod_ident</a></code> est présent et si <code class="directive"><a href="../mod/mod_ident.html#identitycheck">IdentityCheck</a></code> est à
	<code>On</code>.</td></tr>
<tr><td><code>%L</code></td>
        <td>L'identifiant du message de journalisation de la requête
	dans le journal des erreurs (ou '-' si aucun message n'a
	été enregistré dans le journal des erreurs pour cette requête)</td></tr>
<tr class="odd"><td><code>%m</code></td>
        <td>La méthode de la requête</td></tr>
<tr><td><code>%{<var>NOMVAR</var>}n</code></td>
        <td>Le contenu de la note <var>NOMVAR</var> en provenance d'un
	autre module.</td></tr>
<tr class="odd"><td><code>%{<var>NOMVAR</var>}o</code></td>
        <td>Le contenu de la ligne d'en-tête
	<code><var>NOMVAR</var>:</code> de la réponse.</td></tr>
<tr><td><code>%p</code></td>
        <td>Le port canonique du serveur servant la requête</td></tr>
<tr class="odd"><td><code>%{<var>format</var>}p</code></td>
        <td>Le port canonique du serveur servant la requête ou le
	véritable port du serveur ou le véritable port du client. les
	formats valides sont <code>canonical</code>, <code>local</code>,
	ou <code>remote</code>.
        </td></tr>
<tr><td><code>%P</code></td>
        <td>Le numéro de processus du processus enfant qui a servi la
	requête.</td></tr>
<tr class="odd"><td><code>%{<var>format</var>}P</code></td>
        <td>Le numéro de processus ou le numéro de thread du processus
	enfant qui a servi la requête. Les formats valides sont
	<code>pid</code>, <code>tid</code>, et <code>hextid</code>.
        </td></tr>
<tr><td><code>%q</code></td>
        <td>La chaîne d'arguments (préfixée par un <code>?</code> si une
	chaîne d'arguments existe, sinon une chaîne vide)</td></tr>
<tr class="odd"><td><code>%r</code></td>
        <td>La première ligne de la requête</td></tr>
<tr><td><code>%R</code></td>
        <td>Le gestionnaire qui génère la réponse (s'il y en a un).</td></tr>
<tr class="odd"><td><code>%s</code></td>
        <td>Statut. Pour les requêtes redirigées en interne, il s'agit
	du statut de la requête *originale* --- <code>%&gt;s</code> pour
	la dernière.</td></tr>
<tr><td><code>%t</code></td>
        <td>Date à laquelle la requête a été reçue (au format anglais
	standard)</td></tr>
<tr class="odd"><td><code>%{<var>format</var>}t</code></td>
        <td>La date, sous la forme spécifiée par format, qui devrait
	être au format étendu <code>strftime(3)</code> (éventuellement
	localisé). Si le format commence par <code>begin:</code> (valeur
	par défaut), la date est extraite au début du traitement de la
	requête ; s'il commence par <code>end:</code>, la date
	correspond au moment où l'entrée du journal est inscrite, par
	conséquent vers la fin du traitement de la requête. Hormis les
	formats supportés par <code>strftime(3)</code>, les formats
	suivants sont aussi disponibles :
        <table>
        <tr><td><code>sec</code></td><td>nombre de secondes depuis Epoch</td></tr>
        <tr><td><code>msec</code></td><td>nombre de millisecondes depuis  Epoch</td></tr>
        <tr><td><code>usec</code></td><td>nombre de microsecondes depuis Epoch</td></tr>
        <tr><td><code>msec_frac</code></td><td>fraction de milliseconde</td></tr>
        <tr><td><code>usec_frac</code></td><td>fraction de microseconde</td></tr>
        </table>
        Ces symboles ne peuvent pas être combinés entre eux ou avec un
	formatage <code>strftime(3)</code> dans la même chaîne de
	format. Par contre, vous pouvez utiliser plusieurs symboles
	<code>%{<var>format</var>}t</code>.</td></tr>
<tr><td><code>%T</code></td>
        <td>Le temps mis pour servir la requête, en secondes.</td></tr>
<tr class="odd"><td><code>%{<var>UNIT</var>}T</code></td>
        <td>Le temps mis pour traiter la requête dans une unité définie
	par <code>UNIT</code>. Les valeurs d'unité valides sont
	<code>ms</code> pour millisecondes, <code>us</code> pour
	microsecondes et <code>s</code> pour secondes. Si
	<code>UNIT</code> est omis, la valeur de l'unité par défaut est
	la seconde ; spécifier la valeur d'unité <code>us</code> revient
	à utiliser le format <code>%D</code>. La possibilité de
	spécifier une valeur d'unité avec le format <code>%T</code> est
	disponible depuis la version 2.4.13 du serveur HTTP Apache.</td></tr>
<tr><td><code>%u</code></td>
        <td>L'utilisateur distant (en provenance d'auth ; peut être faux
	si le statut de retour (<code>%s</code>) est 401).</td></tr>
<tr class="odd"><td><code>%U</code></td>
        <td>Le chemin de la requête, à l'exclusion de toute chaîne
	d'arguments.</td></tr>
<tr><td><code>%v</code></td>
        <td>Le nom canonique du serveur qui a servi la requête, défini
	par la directive <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>.</td></tr>
<tr class="odd"><td><code>%V</code></td>
        <td>La nom du serveur en tenant compte de la définition de la
	directive <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code>.</td></tr>
<tr><td><code>%X</code></td>
        <td>Statut de la connexion lorsque la réponse a été renvoyée
	:

        <table>
        
        <tr><td><code>X</code> =</td>
            <td>connexion abandonnée avant l'envoi de la réponse.</td></tr>
        <tr><td><code>+</code> =</td>
            <td>la connexion peut rester ouverte après l'envoi de la
	    réponse.</td></tr>
        <tr><td><code>-</code> = </td>
            <td>la connexion sera fermée après l'envoi de la
	    réponse.</td></tr>
        </table>

        </td></tr>
<tr class="odd"><td><code>%I</code></td>
        <td>Le nombre d'octets reçus, en comptant la requête et les
	en-têtes, ne peut être nul. Nécessite l'activation de
	<code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>.</td></tr>
<tr><td><code>%O</code></td>
        <td>Nombre d'octets envoyés, y compris les en-têtes. Peut être
	nul dans les rares cas où une requête est avortée avant que la
	réponse ne soit envoyée. Nécessite l'activation de
	<code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>.</td></tr>
<tr class="odd"><td><code>%S</code></td>
        <td>Nombre d'octets transmis (en émission et réception), y
	compris corps et en-têtes de requête. Ce nombre ne peut pas être
	nul, et il correspond à la combinaison des formats %I et %O.
	<code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code> doit être chargé pour pouvoir
	utiliser ce format.</td></tr>
<tr><td><code>%{<var>VARNAME</var>}^ti</code></td>
        <td>Le contenu de <code><var>VARNAME</var>:</code> dans les
	paramètres de la requête envoyée au serveur.</td></tr>
<tr class="odd"><td><code>%{<var>VARNAME</var>}^to</code></td>
        <td>Le contenu de <code><var>VARNAME</var>:</code> dans les
	paramètres de la réponse envoyée par le serveur.</td></tr>
</table>

    <h3><a name="modifiers" id="modifiers">Modificateurs</a></h3>

      <p>Il est possible de restreindre l'enregistrement de certains
      éléments
      en fonction du code de statut de la réponse, en insérant une liste
      de codes de statut séparés par des virgules immédiatement après le
      caractère "%". Par exemple, <code>"%400,501{User-agent}i"</code>
      n'enregistrera l'en-tête <code>User-agent</code> que dans le cas
      d'une erreur 400 ou 501. Avec les autres codes de statut, c'est la
      chaîne littérale <code>"-"</code> qui sera enregistrée. La liste
      de codes peut être précédée d'un "<code>!</code>" pour inverser la
      condition : <code>"%!200,304,302{Referer}i"</code> enregistre
      l'en-tête <code>Referer</code> pour toutes les requêtes qui
      <em>ne</em> renvoient <em>pas</em> un des trois codes spécifiés.</p>

      <p>Les modificateurs "&lt;" et "&gt;" peuvent être utilisés pour
      les requêtes qui ont été redirigées en interne afin de choisir si
      c'est respectivement la requête originale ou finale qui doit être
      consultée. Par défaut, les directives <code>%s, %U, %T, %D,</code>
      et <code>%r</code> consultent la requête originale, alors que
      toutes les autres consultent la requête finale. Ainsi, par
      exemple, on peut utiliser <code>%&gt;s</code> pour enregistrer le
      statut final de la requête, et <code>%&lt;u</code> pour
      enregistrer l'utilisateur authentifié à l'origine pour une requête
      redirigée en interne vers une ressource sans authentification.</p>

    

    <h3><a name="format-notes" id="format-notes">Quelques Notes</a></h3>

      <p>Pour des raisons de sécurité, à partir de la version 2.0.46,
      les caractères non imprimables et autres caractères spéciaux dans
      les directives <code>%r</code>, <code>%i</code> et <code>%o</code>
      doivent être échappés à l'aide des séquences
      <code>\x<var>hh</var></code>,
      où <var>hh</var> est le code hexadécimal du caractère spécial.
      Comme exceptions à cette règle, les caractères <code>"</code> et
      <code>\</code> doivent être échappés par un anti-slash, et tous
      les "blancs" doivent être écrits selon leur notation de style C
      (<code>\n</code>, <code>\t</code>, etc...). Avant la version
      2.0.46, aucun échappement n'était effectué sur ces chaînes, et il
      fallait être très prudent lors de l'exploitation des journaux
      bruts.</p>

      <p>A la différence de la version 1.3, depuis httpd 2.0, les chaînes
      de format <code>%b</code> et <code>%B</code> ne représentent pas
      le nombre d'octets envoyés au client, mais simplement la taille en
      octets de la réponse HTTP (les deux étant différents, par exemple,
      si la connexion est abandonnée, ou si SSL est utilisé). Le format
      <code>%O</code> fourni par <code class="module"><a href="../mod/mod_logio.html">mod_logio</a></code>,
      enregistrera le nombre réel d'octets envoyés sur le réseau.</p>

      <p>Note : <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> est implémenté en tant que
      gestionnaire basique et non en tant que gestionnaire standard.
      C'est pourquoi la chaîne de format <code>%R</code> ne renverra pas
      d'information à propos du gestionnaire lorsqu'une mise en cache de
      contenu entre en jeu.</p>

    

    <h3><a name="examples" id="examples">Exemples</a></h3>

      <p>Quelques chaînes de format couramment utilisées :</p>

      <dl>
        <dt>Format de journal courant (CLF)</dt>
        <dd><code>"%h %l %u %t \"%r\" %&gt;s %b"</code></dd>

        <dt>Format de journal courant avec un serveur virtuel</dt>
        <dd><code>"%v %h %l %u %t \"%r\" %&gt;s %b"</code></dd>

        <dt>Format de journal NCSA étandu/combiné</dt>
        <dd><code>"%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\"
        \"%{User-agent}i\""</code></dd>

        <dt>Format de journal de la page qui contient le lien vers la
	page concernée (Referer)</dt>
        <dd><code>"%{Referer}i -&gt; %U"</code></dd>

        <dt>Format de journal de l'agent (Navigateur)</dt>
        <dd><code>"%{User-agent}i"</code></dd>
      </dl>

      <p>Vous pouvez utiliser plusieurs fois la directive
      <code>%{format}t</code> pour construire un format de temps
      utilisant les symboles de format étendus tels que
      <code>msec_frac</code> :</p>
      <dl>
<dt>Format de temps prenant en compte les milisecondes</dt>
<dd><code>"%{%d/%b/%Y %T}t.%{msec_frac}t %{%z}t"</code></dd>

      </dl>

    
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="security" id="security">Considérations concernant la
sécurité</a></h2>
    <p>Voir le document <a href="../misc/security_tips.html#serverroot">conseils à matière de
    sécurité</a> pour plus de détails sur les raisons pour lesquelles
    votre sécurité pourrait être compromise, si le répertoire où sont
    stockés les fichiers journaux sont inscriptibles par tout autre
    utilisateur que celui qui démarre le serveur.</p>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="bufferedlogs" id="bufferedlogs">Directive</a> <a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre les entrées du journal dans un tampon en mémoire
avant de les écrire sur disque</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BufferedLogs Off</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
</table>
    <p>Lorsque la directive <code class="directive">BufferedLogs</code> est à
    "on", <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> stocke de nombreuses entrées
    du journal en mémoire, et les écrit d'un seul bloc sur disque,
    plutôt que de les écrire après chaque requête. Sur certains
    systèmes, ceci peut améliorer l'efficacité des accès disque, et par
    conséquent les performances. La directive ne peut être définie
    qu'une seule fois pour l'ensemble du serveur ; elle ne peut pas être
    définie au niveau d'un serveur virtuel.</p>

    <div class="note">Cette directive doit être utilisée avec
    précautions car un crash peut provoquer la perte de données de
    journalisation.</div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="customlog" id="customlog">Directive</a> <a name="CustomLog" id="CustomLog">CustomLog</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom et le format du fichier
journal</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CustomLog  <var>fichier</var>|<var>pipe</var>
<var>format</var>|<var>alias</var>
[env=[!]<var>variable-environnement</var>|
expr=<var>expression</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
</table>
    <p>La directive <code class="directive">CustomLog</code> permet de contrôler
    la journalisation des requêtes destinées au serveur. Un format de
    journal est spécifié, et la journalisation peut s'effectuer de
    manière conditionnelle en fonction des caractéristiques de la
    requête en utilisant des variables d'environnement.</p>

    <p>Le premier argument, qui spécifie l'emplacement où les journaux
    seront écrits, accepte deux types de valeurs :</p>

    <dl>
      <dt><var>fichier</var></dt>
      <dd>Un nom de fichier, relatif au répertoire défini par la
      directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>

      <dt><var>pipe</var></dt>
      <dd>Le caractère pipe "<code>|</code>", suivi du chemin vers un
      programme qui recevra les informations de la journalisation sur
      son entrée standard. Voir les notes à propos de la <a href="../logs.html#piped">journalisation redirigée</a> pour plus
      d'informations.

      <div class="warning"><h3>Sécurité :</h3>
      <p>Si les journaux sont redirigés vers un programme, ce dernier
      s'exécutera sous l'utilisateur qui a démarré
      <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Ce sera l'utilisateur root si le serveur
      a été démarré par root ; vérifiez que le programme est
      sécurisé.</p>
      </div>
      <div class="warning"><h3>Note</h3>
        <p>Lors de la spécification d'un chemin de fichier sur les
	plate-formes non-Unix, il faut prendre soin de ne pas oublier
	que seuls les slashes directs doivent être utilisés, même si la
	plate-forme autorise l'emploi d'anti-slashes. D'une manière
	générale, c'est une bonne idée que de n'utiliser que des slashes
	directs dans les fichiers de configuration.</p>
      </div></dd>
    </dl>

    <p>Le second argument permet de définir ce qui va être écrit dans le
    fichier journal. Il peut contenir soit un <var>alias</var> prédéfini
    par une directive <code class="directive"><a href="#logformat">LogFormat</a></code>, soit une chaîne de
    <var>format</var> explicite comme décrit dans la section <a href="#formats">formats de journaux</a>.</p>

    <p>Par exemple, les deux blocs de directives suivants produisent le
    même effet :</p>

    <pre class="prettyprint lang-config"># Journal personnalisé avec alias de format
LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
CustomLog "logs/access_log" common

# Journal personnalisé avec chaîne de format explicite
CustomLog "logs/access_log" "%h %l %u %t \"%r\" %&gt;s %b"</pre>


    <p>Le troisième argument est optionnel et permet de contrôler si une
    requête doit être ou non journalisée. Dans le cas d'une clause
    '<code>env=!<var>nom</var></code>', la condition peut être la
    présence ou l'absence d'une variable particulière dans
    l'<a href="../env.html">environnement du serveur</a>. Dans le cas
    d'une clause 'expr=<var>expression</var>', la condition consiste
    en une <a href="../expr.html">expression</a> booléenne
    quelconque. Si la condition n'est pas vérifiée, la requête ne sera
    pas journalisée. D'éventuelles références à des en-têtes HTTP dans
    l'expression rationnelle n'entraîneront pas l'ajout des noms
    d'en-tête correspondants à l'en-tête Vary.</p>

    <p>Les variables d'environnement peuvent être définies au niveau de
    chaque requête en utilisant les modules
    <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> et/ou <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.
    Par exemple, si vous voulez enregistrer les requêtes pour toutes les
    images GIF sur votre serveur dans un fichier journal séparé, et pas
    dans votre journal principal, vous pouvez utiliser :</p>

    <pre class="prettyprint lang-config">SetEnvIf Request_URI \.gif$ gif-image
CustomLog "gif-requests.log" common env=gif-image
CustomLog "nongif-requests.log" common env=!gif-image</pre>


    <p>Ou, pour reproduire le comportement de l'ancienne directive
    RefererIgnore, vous pouvez utiliser :</p>

    <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
CustomLog "referer.log" referer env=!localreferer</pre>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="globallog" id="globallog">Directive</a> <a name="GlobalLog" id="GlobalLog">GlobalLog</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom et le format du fichier journal</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>GlobalLog<var>file</var>|<var>pipe</var>
<var>format</var>|<var>nickname</var>
[env=[!]<var>environment-variable</var>|
expr=<var>expression</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.19 du serveur HTTP Apache</td></tr>
</table>

    <p>La directive <code class="directive">GlobalLog</code> permet de spécifier un
    journal partagé entre le serveur principal et tous les serveurs virtuels
    définis.</p>

    <p>Elle est identique à la directive <code class="directive">CustomLog</code> à ces
    différences près : </p>
    <ul>
       <li>Elle n'est pas valide dans un contexte de serveur virtuel.</li>
       <li>A la différence d'une directive <code class="directive">CustomLog</code>
       définie globalement, elle est prise en compte par les serveurs virtuels
       qui définissent leur propre directive <code class="directive">CustomLog</code>.</li>
    </ul>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="logformat" id="logformat">Directive</a> <a name="LogFormat" id="LogFormat">LogFormat</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Décrit un format utilisable dans un fichier
journal</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LogFormat <var>format</var>|<var>alias</var>
[<var>alias</var>]</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
</table>
    <p>Cette directive permet de spécifier le format du fichier journal
    des accès.</p>

    <p>La directive <code class="directive">LogFormat</code> se présente sous
    deux formes. Sous la première forme, qui ne possède qu'un seul
    argument, la directive définit le format qui sera utilisé dans les
    journaux spécifiés par les directives
    <code class="directive">TransferLog</code> ultérieures. L'argument unique
    peut contenir un <var>format</var> explicite comme décrit dans la
    section <a href="#formats">formats de journaux personnalisés</a>
    ci-dessus. Il peut aussi contenir un <var>alias</var> faisant
    référence à un format de journal prédéfini par une directive
    <code class="directive">LogFormat</code> comme décrit plus loin.</p>

    <p>Sous sa seconde forme, la directive
    <code class="directive">LogFormat</code> associe un <var>format</var>
    explicite à un <var>alias</var>. Cet <var>alias</var> peut
    ensuite s'utiliser dans les directives
    <code class="directive">LogFormat</code> ou <code class="directive"><a href="#customlog">CustomLog</a></code> ultérieures, ce qui
    évite d'avoir à répéter l'ensemble de la chaîne de format. Une
    directive <code class="directive">LogFormat</code> qui définit un alias
    <strong>ne fait rien d'autre</strong> -- c'est à dire qu'<em>elle ne
    fait que</em> définir l'alias, elle n'applique pas le format et n'en
    fait pas le format par défaut. Par conséquent, elle n'affecte pas
    les directives <code class="directive"><a href="#transferlog">TransferLog</a></code> ultérieures. En
    outre, la directive <code class="directive">LogFormat</code> ne peut pas
    utiliser un alias pour en définir un autre. Notez que l'alias ne
    doit pas contenir de caractère pourcent (<code>%</code>).</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" serveur_virtuel_commun</pre>
</div>


</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="transferlog" id="transferlog">Directive</a> <a name="TransferLog" id="TransferLog">TransferLog</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie l'emplacement d'un fichier journal</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>TransferLog <var>fichier</var>|<var>pipe</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
</table>
    <p>Cette directive possède exactement les mêmes arguments et produit
    les mêmes effets que la directive <code class="directive"><a href="#customlog">CustomLog</a></code>, à l'exception qu'elle
    ne permet pas de spécifier un format de journal explicite ou la
    journalisation conditionnelle des requêtes. En l'occurrence, le
    format de journal est déterminé par la dernière définition d'une
    directive <code class="directive"><a href="#logformat">LogFormat</a></code>
    qui ne définit pas d'alias. Si aucun format particulier n'a été
    spécifié, c'est le Common Log Format qui sera utilisé.</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""
TransferLog logs/access_log</pre>
</div>

</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_log_config.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_log_config.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/mod/mod_log_config.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_log_config.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="../tr/mod/mod_log_config.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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 Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_log_config.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2023 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/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[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>