mirror of
https://github.com/apache/httpd.git
synced 2026-01-06 09:01:14 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1722582 13f79535-47bb-0310-9956-ffa450edef68
764 lines
44 KiB
Plaintext
764 lines
44 KiB
Plaintext
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
|
||
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
|
||
<!--
|
||
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
This file is generated from xml source: DO NOT EDIT
|
||
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
-->
|
||
<title>Fichiers journaux - Serveur Apache HTTP Version 2.5</title>
|
||
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
|
||
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
|
||
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="./style/css/prettify.css" />
|
||
<script src="./style/scripts/prettify.min.js" type="text/javascript">
|
||
</script>
|
||
|
||
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
|
||
<body id="manual-page"><div id="page-header">
|
||
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
|
||
<p class="apache">Serveur Apache HTTP Version 2.5</p>
|
||
<img alt="" src="./images/feather.gif" /></div>
|
||
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
|
||
<div id="path">
|
||
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Fichiers journaux</h1>
|
||
<div class="toplang">
|
||
<p><span>Langues Disponibles: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||
<a href="./fr/logs.html" title="Fran<61>ais"> fr </a> |
|
||
<a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
|
||
<a href="./tr/logs.html" hreflang="tr" rel="alternate" title="T<>rk<72>e"> tr </a></p>
|
||
</div>
|
||
|
||
<p>Pour v<>ritablement g<>rer un serveur web,
|
||
il est n<>cessaire de disposer d'un
|
||
retour d'informations <20> propos de l'activit<69> et des performances du
|
||
serveur, ainsi que de tout probl<62>me qui pourrait survenir. Le serveur HTTP
|
||
Apache propose des fonctionnalit<69>s de journalisation souples et tr<74>s
|
||
compl<70>tes. Ce document d<>crit comment configurer ces fonctionnalit<69>s de
|
||
journalisation et interpr<70>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 <20> propos de la s<>curit<69></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<63>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<69>s</a></li>
|
||
<li><img alt="" src="./images/down.gif" /> <a href="#virtualhost">H<>tes virtuels</a></li>
|
||
<li><img alt="" src="./images/down.gif" /> <a href="#other">Autres fichiers journaux</a></li>
|
||
</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
|
||
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="overview" id="overview">Vue d'ensemble</a></h2>
|
||
|
||
|
||
<table class="related"><tr><th>Modules Apparent<6E>s</th><th>Directives Apparent<6E>es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code></li><li><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td /></tr></table>
|
||
|
||
<p>
|
||
Le serveur HTTP Apache fournit toute une vari<72>t<EFBFBD> de m<>canismes
|
||
diff<66>rents pour la journalisation de tout ce qui peut se passer au
|
||
sein de votre serveur, depuis la requ<71>te initiale, en passant par le
|
||
processus de mise en correspondance des URLs, et jusqu'<27> la fermeture
|
||
de la connexion, y compris toute erreur pouvant survenir au cours du
|
||
traitement. De plus, certains modules tiers fournissent des
|
||
fonctionnalit<69>s de journalisation ou ins<6E>rent des entr<74>es dans les
|
||
fichiers journaux existants, et les applications comme les programmes
|
||
CGI, les scripts PHP ou autres gestionnaires peuvent envoyer des
|
||
messages vers le journal des erreurs du serveur.
|
||
</p>
|
||
|
||
<p>
|
||
Ce document d<>crit le fonctionnement des modules de journalisation
|
||
fournis en standard avec le serveur httpd.
|
||
</p>
|
||
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="security" id="security">Avertissement <20> propos de la s<>curit<69></a></h2>
|
||
|
||
|
||
<p>Tout utilisateur qui a les droits en <20>criture sur le r<>pertoire dans
|
||
lequel Apache httpd <20>crit ses journaux pourra quasi
|
||
certainement avoir acc<63>s <20> l'uid sous lequel le serveur est d<>marr<72>, en
|
||
l'occurrence habituellement root. N'accordez <em>PAS</em> aux utilisateurs
|
||
l'acc<63>s en <20>criture au r<>pertoire dans lequel les journaux sont stock<63>s
|
||
sans savoir exactement quelles en seraient les cons<6E>quences ; voir le
|
||
document <a href="misc/security_tips.html">conseils sur la s<>curit<69></a>
|
||
pour plus de d<>tails.</p>
|
||
|
||
<p>En outre, les journaux peuvent contenir des informations fournies
|
||
directement par un client, sans caract<63>res d'<27>chappement. Des clients mal
|
||
intentionn<6E>s peuvent donc ins<6E>rer des caract<63>res de contr<74>le dans les
|
||
journaux, et il convient par cons<6E>quent d'<27>tre tr<74>s prudent lors de la
|
||
manipulation des journaux bruts.</p>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="errorlog" id="errorlog">Journal des erreurs</a></h2>
|
||
|
||
|
||
<table class="related"><tr><th>Modules Apparent<6E>s</th><th>Directives Apparent<6E>es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/core.html">core</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code></li><li><code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code></li></ul></td></tr></table>
|
||
|
||
<p>Le journal des erreurs du serveur, dont le nom et la localisation sont
|
||
d<>finis par la directive <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code>,
|
||
est le journal le plus important. C'est dans celui-ci
|
||
que le d<>mon Apache httpd va envoyer les informations de diagnostic et
|
||
enregistrer toutes les erreurs qui surviennent lors du traitement des
|
||
requ<71>tes. Lorsqu'un probl<62>me survient au d<>marrage du serveur ou pendant
|
||
son fonctionnement, la premi<6D>re chose <20> faire est de regarder dans ce
|
||
journal, car il vous renseignera souvent sur le probl<62>me rencontr<74> et
|
||
la mani<6E>re d'y rem<65>dier.</p>
|
||
|
||
<p>Le journal des erreurs est habituellement enregistr<74> dans un fichier
|
||
(en g<>n<EFBFBD>ral <code>error_log</code> sur les syst<73>mes de type Unix et
|
||
<code>error.log</code> sur Windows et OS/2). Sur les syst<73>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<72>diaire d'un
|
||
tube de communication (pipe).</p>
|
||
|
||
<p>Le format par d<>faut du journal des erreurs est descriptif et de forme
|
||
relativement libre. Certaines informations apparaissent cependant dans la
|
||
plupart des entr<74>es du journal. Voici un message typique
|
||
<20> titre d'exemple : </p>
|
||
|
||
<div class="example"><p><code>
|
||
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1]
|
||
client denied by server configuration:
|
||
/export/home/live/ap/htdocs/test
|
||
</code></p></div>
|
||
|
||
<p>Le premier champ de l'entr<74>e du journal est la date et l'heure du
|
||
message. Le second champ indique la s<>v<EFBFBD>rit<69> de l'erreur rapport<72>e. La
|
||
directive <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> permet de
|
||
restreindre le type des erreurs qui doivent <20>tre enregistr<74>es
|
||
dans le journal des erreurs en d<>finissant leur niveau de s<>v<EFBFBD>rit<69>. Le
|
||
troisi<73>me champ contient l'adresse IP du client qui a g<>n<EFBFBD>r<EFBFBD> l'erreur.
|
||
Vient ensuite le message proprement dit, qui indique dans ce cas que le
|
||
serveur a <20>t<EFBFBD> configur<75> pour interdire l'acc<63>s au client. Le serveur
|
||
indique le chemin syst<73>me du document requis (et non
|
||
son chemin web).</p>
|
||
|
||
<p>Une grande vari<72>t<EFBFBD> de messages diff<66>rents peuvent appara<72>tre dans le
|
||
journal des erreurs. La plupart d'entre eux sont similaires <20> l'exemple
|
||
ci-dessus. Le journal des erreurs peut aussi contenir des informations de
|
||
d<>bogage en provenance de scripts CGI. Toute information qu'un script CGI
|
||
<20>crit sur la sortie d'erreurs standard <code>stderr</code> sera recopi<70>e
|
||
telle quelle dans le journal des erreurs.</p>
|
||
|
||
<p>La directive <code class="directive"><a href="./mod/core.html#errorlogformat">ErrorLogFormat</a></code>
|
||
vous permet de personnaliser le format du journal des erreurs, et de
|
||
d<>finir les informations <20> journaliser. Si
|
||
<code class="module"><a href="./mod/mod_unique_id.html">mod_unique_id</a></code> est pr<70>sent, vous pouvez utiliser le
|
||
drapeau <code>%L</code> <20> la fois dans le journal des erreurs et
|
||
dans le
|
||
journal des acc<63>s, ce qui aura pour effet de g<>n<EFBFBD>rer un identifiant
|
||
d'entr<74>e qui vous permettra de corr<72>ler les entr<74>es du journal des
|
||
erreurs avec celles du journal des acc<63>s.</p>
|
||
|
||
<p>Pendant la phase de test, il est souvent utile de visualiser en continu
|
||
le journal des erreurs afin de d<>tecter tout probl<62>me <20>ventuel. Sur les
|
||
syst<73>mes de type Unix, ceci s'effectue <20> l'aide de la commande :</p>
|
||
|
||
<div class="example"><p><code>
|
||
tail -f error_log
|
||
</code></p></div>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="permodule" id="permodule">Journalisation par module</a></h2>
|
||
|
||
|
||
<p>La directive <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> permet
|
||
de sp<73>cifier un niveau de s<>v<EFBFBD>rit<69> de journalisation pour chaque
|
||
module. Vous pouvez ainsi r<>soudre un probl<62>me propre <20> un module particulier
|
||
en augmentant son volume de journalisation sans augmenter ce volume
|
||
pour les autres modules. Ceci est particuli<6C>rement utile lorsque
|
||
vous voulez obtenir des d<>tails sur le fonctionnement de modules
|
||
comme <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code> ou <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
|
||
|
||
<p>Pour ce faire, vous devez sp<73>cifier le nom du module dans votre
|
||
directive <code class="directive">LogLevel</code> :</p>
|
||
|
||
<pre class="prettyprint lang-config">LogLevel info rewrite:trace5</pre>
|
||
|
||
|
||
<p>Dans cet exemple, le niveau de journalisation g<>n<EFBFBD>ral est d<>fini
|
||
<20> info, et <20> <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<70>c<EFBFBD>dentes du serveur, comme
|
||
<code>RewriteLog</code>.</div>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="accesslog" id="accesslog">Journal des acc<63>s</a></h2>
|
||
|
||
|
||
<table class="related"><tr><th>Modules Apparent<6E>s</th><th>Directives Apparent<6E>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<63>s au serveur
|
||
enregistre toutes les requ<71>tes que traite
|
||
ce dernier. La localisation et le contenu du journal des acc<63>s sont d<>finis
|
||
par la directive <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>.
|
||
La directive <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code>
|
||
permet de simplifier la s<>lection du contenu du journal. Cette section
|
||
d<>crit comment configurer le serveur pour l'enregistrement des informations
|
||
dans le journal des acc<63>s.</p>
|
||
|
||
<p>Bien <20>videmment, le stockage d'informations dans le journal des acc<63>s
|
||
n'est que le point de d<>part de la gestion de la journalisation. L'<27>tape
|
||
suivante consiste <20> analyser ces informations de fa<66>on <20> pouvoir en
|
||
extraire des statistiques utiles. L'analyse de journaux en g<>n<EFBFBD>ral est en
|
||
dehors du sujet de ce document et ne fait pas vraiment partie int<6E>grante
|
||
du travail du serveur web lui-m<>me. Pour plus d'informations <20> propos de ce
|
||
sujet et des applications d<>di<64>es <20> l'analyse de journaux, vous pouvez vous
|
||
r<>f<EFBFBD>rer <20> <a href="http://dmoz.org/Computers/Software/Internet/ Site_Management/Log_analysis/">Open Directory</a> ou
|
||
<a href="http://dir.yahoo.com/Computers_and_Internet/Software/ Internet/World_Wide_Web/Servers/Log_Analysis_Tools/">Yahoo</a>.</p>
|
||
|
||
<p>Diff<66>rentes versions du d<>mon Apache httpd utilisaient d'autres modules
|
||
et directives pour contr<74>ler la journalisation des acc<63>s, <20> l'instar de
|
||
mod_log_referer, mod_log_agent, et de la directive
|
||
<code>TransferLog</code>. La directive
|
||
<code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> rassemble
|
||
d<>sormais les fonctionnalit<69>s de toutes les anciennes directives.</p>
|
||
|
||
<p>Le format du journal des acc<63>s est hautement configurable. Il est
|
||
d<>fini <20> l'aide d'une cha<68>ne de format qui ressemble sensiblement <20> la
|
||
cha<68>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<68>ne de format, vous pouvez vous r<>f<EFBFBD>rer au chapitre
|
||
<a href="mod/mod_log_config.html#formats">cha<68>nes de format</a> de la
|
||
documentation du module <code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code>.</p>
|
||
|
||
<h3><a name="common" id="common">Format habituel du journal</a></h3>
|
||
|
||
|
||
<p>Voici une configuration typique pour le journal des acc<63>s :</p>
|
||
|
||
<pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %>s %b" common
|
||
CustomLog "logs/access_log" common</pre>
|
||
|
||
|
||
<p>Ici est d<>finie l'<em>identit<69></em> <code>common</code> qui est
|
||
ensuite associ<63>e <20> une cha<68>ne de format de journalisation particuli<6C>re.
|
||
La cha<68>ne de format est constitu<74>e de directives d<>butant par le
|
||
caract<63>re %, chacune d'entre elles indiquant au serveur d'enregistrer
|
||
un <20>l<EFBFBD>ment particulier d'information. Des caract<63>res litt<74>raux peuvent
|
||
aussi <20>tre ins<6E>r<EFBFBD>s dans la cha<68>ne de format ; il seront copi<70>s tels
|
||
quels dans le flux de sortie destin<69> <20> la journalisation.
|
||
Les guillemets (<code>"</code>) doivent <20>tre <20>chapp<70>es en les faisant
|
||
pr<70>c<EFBFBD>der d'un anti-slash (<code>\</code>) afin qu'elles ne soient pas
|
||
interpr<70>t<EFBFBD>es comme la fin de la cha<68>ne de format. La cha<68>ne de format
|
||
peut aussi contenir les caract<63>res de contr<74>le sp<73>ciaux
|
||
"<code>\n</code>" et "<code>\t</code>" pour ins<6E>rer respectivement
|
||
un passage <20> la ligne et une tabulation.</p>
|
||
|
||
<p>La directive <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>
|
||
d<>finit un nouveau fichier journal en l'associant <20> l'identit<69>
|
||
pr<70>c<EFBFBD>demment d<>finie. Le chemin du nom de fichier associ<63> au journal
|
||
des acc<63>s est relatif au chemin d<>fini par la directive
|
||
<code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code>, sauf s'il
|
||
d<>bute par un slash.</p>
|
||
|
||
<p>La configuration ci-dessus va enregistrer les entr<74>es de
|
||
journalisation selon un format connu sous le nom de
|
||
Common Log Format (CLF) pour "Format de journalisation standard".
|
||
Ce format standard peut <20>tre produit par de nombreux serveurs web
|
||
diff<66>rents et lu par de nombreux programmes d'analyse de journaux.
|
||
Les entr<74>es de fichier journal g<>n<EFBFBD>r<EFBFBD>es selon le format CLF
|
||
ressemblent <20> 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<74>e de journal est d<>crite
|
||
dans ce qui suit.</p>
|
||
|
||
<dl>
|
||
<dt><code>127.0.0.1</code> (<code>%h</code>)</dt>
|
||
|
||
<dd>Il s'agit de l'adresse IP du client (l'h<>te distant) qui a envoy<6F>
|
||
la requ<71>te au serveur. Si la directive
|
||
<code class="directive"><a href="./mod/core.html#hostnamelookups">HostnameLookups</a></code> est positionn<6E>e <20>
|
||
<code>On</code>, le serveur va essayer de d<>terminer le nom de l'h<>te
|
||
et de l'enregistrer <20> la place de l'adresse IP. Cette configuration
|
||
n'est cependant pas recommand<6E>e car elle peut ralentir le serveur de
|
||
mani<6E>re significative. Il est par cons<6E>quent pr<70>f<EFBFBD>rable d'utiliser un
|
||
processeur d'analyse de journaux a posteriori
|
||
tel que <code class="program"><a href="./programs/logresolve.html">logresolve</a></code>
|
||
pour d<>terminer les noms d'h<>te. L'adresse IP indiqu<71>e ici n'est pas
|
||
n<>cessairement l'adresse IP de la machine devant laquelle se trouve
|
||
l'utilisateur. Si un serveur mandataire s'intercale entre le serveur
|
||
et l'utilisateur, l'adresse indiqu<71>e sera celle du mandataire et non
|
||
celle de la machine <20> l'origine de la requ<71>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<70>sent, l'information
|
||
non disponible est l'identit<69> (RFC 1413) du client telle que d<>termin<69>e
|
||
par <code>identd</code> sur la machine cliente. Cette information est
|
||
tr<74>s peu fiable et ne devrait jamais <20>tre utilis<69>e, sauf dans le cas
|
||
de r<>seaux internes <20>troitement contr<74>l<EFBFBD>s. Le d<>mon httpd ne cherchera
|
||
d'ailleurs <20> obtenir cette information que si la directive
|
||
<code class="directive"><a href="./mod/mod_ident.html#identitycheck">IdentityCheck</a></code> est positionn<6E>e
|
||
<09> <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<6E> le document, issu d'une authentification HTTP.
|
||
Ce m<>me identifiant est en g<>n<EFBFBD>ral fourni aux scripts CGI par
|
||
l'interm<72>diaire de la valeur de la variable d'environnement
|
||
<code>REMOTE_USER</code>. Si le statut de la requ<71>te (voir plus loin)
|
||
est 401, cette identifiant n'est pas fiable car l'utilisateur n'est
|
||
pas encore authentifi<66>. Si le document n'est pas prot<6F>g<EFBFBD> par
|
||
mot de passe, cette partie d'information sera repr<70>sent<6E>e par
|
||
"<code>-</code>", comme la partie pr<70>c<EFBFBD>dente.</dd>
|
||
|
||
<dt><code>[10/Oct/2000:13:55:36 -0700]</code>
|
||
(<code>%t</code>)</dt>
|
||
|
||
<dd>
|
||
L'heure <20> laquelle la requ<71>te a <20>t<EFBFBD> re<72>ue.
|
||
Le format est le suivant :
|
||
|
||
<p class="indent">
|
||
<code>[jour/mois/ann<6E>e:heure:minutes:secondes zone]<br />
|
||
jour = 2*chiffre<br />
|
||
mois = 3*lettre<br />
|
||
ann<6E>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<73>cifiant <code>%{format}t</code> dans la cha<68>ne de format du
|
||
journal, o<> <code>format</code> est une cha<68>ne de format
|
||
de la forme de celle de la fonction <code>strftime(3)</code>
|
||
de la biblioth<74>que C standard, ou choisie parmi les
|
||
formats sp<73>ciaux support<72>s. Pour plus de d<>tails,
|
||
reportez-vous aux. <a href="mod/mod_log_config.html#formats">cha<68>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<71>te du client est plac<61>e entre guillemets.
|
||
Elle contient de nombreuses informations utiles. Tout d'abord, la
|
||
m<>thode utilis<69>e par le client est <code>GET</code>. Ensuite, le
|
||
client a demand<6E> la ressource <code>/apache_pb.gif</code>, et enfin,
|
||
le client a utilis<69> le protocole <code>HTTP/1.0</code>. Il est aussi
|
||
possible d'enregistrer s<>par<61>ment une ou plusieurs parties de la
|
||
requ<71>te. Par exemple, la cha<68>ne de format "<code>%m %U %q %H</code>"
|
||
va enregistrer la m<>thode, le chemin, la cha<68>ne de la requ<71>te et le
|
||
protocole, ce qui donnera le m<>me r<>sultat que
|
||
"<code>%r</code>".</dd>
|
||
|
||
<dt><code>200</code> (<code>%>s</code>)</dt>
|
||
|
||
<dd>C'est le code de statut que le serveur retourne au client. Cette
|
||
information est tr<74>s importante car elle indique si la requ<71>te a fait
|
||
l'objet d'une r<>ponse positive (codes commen<65>ant par 2), une
|
||
redirection (codes commen<65>ant par 3), une erreur due au client (codes
|
||
commen<65>ant par 4), ou une erreur due au serveur (codes commen<65>ant
|
||
par 5). Vous trouverez la liste compl<70>te des codes de statut possibles
|
||
dans la <a href="http://www.w3.org/Protocols/rfc2616/ rfc2616.txt">specification HTTP</a> (RFC2616 section 10).</dd>
|
||
|
||
<dt><code>2326</code> (<code>%b</code>)</dt>
|
||
|
||
<dd>La derni<6E>re partie indique la taille de l'objet retourn<72> au client,
|
||
en-t<>tes non compris. Si aucun contenu n'a <20>t<EFBFBD> retourn<72> au client, cette
|
||
partie contiendra "<code>-</code>". Pour indiquer l'absence de contenu
|
||
par "<code>0</code>", utilisez <code>%B</code> au lieu de
|
||
<code>%b</code>.</dd>
|
||
</dl>
|
||
|
||
|
||
<h3><a name="combined" id="combined">Combined Log Format (Format de journalisation combin<69>)</a></h3>
|
||
|
||
|
||
<p>Une autre cha<68>ne de format couramment utilis<69>e est le
|
||
"Combined Log Format" (Format de journalisation combin<69>). Il s'utilise
|
||
comme suit :</p>
|
||
|
||
<pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
|
||
CustomLog "log/access_log" combined</pre>
|
||
|
||
|
||
<p>Ce format est identique au Common Log Format, avec deux champs
|
||
suppl<70>mentaires. Chacun de ces deux champs utilise la directive
|
||
commen<65>ant par le caract<63>re "%" <code>%{<em>header</em>}i</code>,
|
||
o<> <em>header</em> peut <20>tre n'importe quel en-t<>te de requ<71>te HTTP.
|
||
Avec ce format, le journal des acc<63>s se pr<70>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<70>mentaires sont :</p>
|
||
|
||
<dl>
|
||
<dt><code>"http://www.example.com/start.html"</code>
|
||
(<code>\"%{Referer}i\"</code>)</dt>
|
||
|
||
<dd>L'en-t<>te "Referer" (sic) de la requ<71>te HTTP. Il indique le site
|
||
depuis lequel le client pr<70>tend avoir lanc<6E> sa requ<71>te. (Ce doit <20>tre
|
||
la page qui contient un lien vers <code>/apache_pb.gif</code> ou
|
||
inclut ce dernier fichier).</dd>
|
||
|
||
<dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code>
|
||
(<code>\"%{User-agent}i\"</code>)</dt>
|
||
|
||
<dd>L'en-t<>te User-Agent de la requ<71>te HTTP. C'est une information
|
||
d'identification que le navigateur du client envoie <20> propos
|
||
de lui-m<>me.</dd>
|
||
</dl>
|
||
|
||
|
||
<h3><a name="multiple" id="multiple">Journaux d'acc<63>s multiples</a></h3>
|
||
|
||
|
||
<p>Plusieurs journaux d'acc<63>s peuvent <20>tre cr<63><72>s en sp<73>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<63>er trois journaux d'acc<63>s. Le premier contiendra les informations
|
||
de base CLF, le second les informations du Referer, et le troisi<73>me
|
||
les informations sur le navigateur. Les deux derni<6E>res directives
|
||
<code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> montrent
|
||
comment simuler les effets des directives <code>ReferLog</code> et
|
||
<code>AgentLog</code>.</p>
|
||
|
||
<pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %>s %b" common
|
||
CustomLog "logs/access_log" common
|
||
CustomLog "logs/referer_log" "%{Referer}i -> %U"
|
||
CustomLog "logs/agent_log" "%{User-agent}i"</pre>
|
||
|
||
|
||
<p>Cet exemple montre aussi qu'il n'est pas obligatoire d'associer
|
||
une cha<68>ne de format <20> un alias au moyen de la directive
|
||
<code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code>. Elle peut
|
||
<20>tre d<>finie directement dans la ligne de la directive
|
||
<code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>.</p>
|
||
|
||
|
||
<h3><a name="conditional" id="conditional">Journalisation conditionnelle</a></h3>
|
||
|
||
|
||
<p>Il est parfois souhaitable d'exclure certaines entr<74>es des journaux
|
||
d'acc<63>s en fonction des caract<63>ristiques de la requ<71>te du client. On
|
||
peut ais<69>ment accomplir ceci <20> l'aide des
|
||
<a href="env.html">variables d'environnement</a>. Tout d'abord, une
|
||
variable d'environnement doit <20>tre d<>finie pour indiquer que la
|
||
requ<71>te remplit certaines conditions. Pour ceci, on utilise en g<>n<EFBFBD>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<71>tes pour lesquelles
|
||
la variable d'environnement est d<>finie.
|
||
Quelques exemples :</p>
|
||
|
||
<pre class="prettyprint lang-config"># Marque les requ<71>tes en provenance de l'interface loop-back
|
||
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
|
||
# Marque les requ<71>tes pour le fichier robots.txt
|
||
SetEnvIf Request_URI "^/robots\.txt$" dontlog
|
||
# Journalise toutes les autres requ<71>tes
|
||
CustomLog "logs/access_log" common env=!dontlog</pre>
|
||
|
||
|
||
<p>Autre exemple, imaginons l'enregistrement des requ<71>tes en provenance
|
||
d'utilisateurs de langue anglaise dans un journal, et celles des autres
|
||
utilisateurs dans un autre journal.</p>
|
||
|
||
<pre class="prettyprint lang-config"> SetEnvIf Accept-Language "en" english<br />
|
||
CustomLog "logs/english_log" common env=english<br />
|
||
CustomLog "logs/non_english_log" common env=!english</pre>
|
||
|
||
|
||
<p>Dans le contexte d'une mise en cache, il peut <20>tre
|
||
int<6E>ressant de conna<6E>tre l'efficacit<69> du cache. Pour y parvenir,
|
||
on pourrait utiliser cette m<>thode simple :</p>
|
||
|
||
<pre class="prettyprint lang-config">SetEnv CACHE_MISS 1
|
||
LogFormat "%h %l %u %t "%r " %>s %b %{CACHE_MISS}e" common-cache
|
||
CustomLog "logs/access_log" common-cache</pre>
|
||
|
||
|
||
<p><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code> va s'ex<65>cuter avant
|
||
<code class="module"><a href="./mod/mod_env.html">mod_env</a></code>, et si son action est couronn<6E>e de
|
||
succ<63>s, il d<>livrera le contenu sans faire appel <20> ce dernier. Si
|
||
l'URL se trouve dans le cache, la valeur journalis<69>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<61>es sur le code de la
|
||
r<>ponse HTTP :</p>
|
||
|
||
<pre class="prettyprint lang-config">LogFormat "%400,501{User-agent}i" browserlog
|
||
LogFormat "%!200,304,302{Referer}i" refererlog</pre>
|
||
|
||
|
||
<p>Dans le premier exemple, le <code>User-agent</code> sera
|
||
enregistr<74> si le code d'<27>tat HTTP est 400 ou 501. Dans le cas
|
||
contraire, c'est un caract<63>re "-" qui sera enregistr<74> <20> la place.
|
||
Dans le second exemple, le <code>Referer</code> sera enregistr<74> si
|
||
le code d'<27>tat HTTP n'est <strong>pas</strong> 200, 204, ou 302
|
||
(remarquez le caract<63>re "!" avant les codes d'<27>tat).</p>
|
||
|
||
<p>Bien que nous venions de montrer que la journalisation conditionnelle
|
||
est souple et tr<74>s puissante, cette m<>thode de contr<74>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<69> du serveur,
|
||
et il est souvent plus ais<69> de simplement traiter <20> posteriori les fichiers
|
||
journaux pour supprimer les requ<71>tes que vous ne voulez pas y voir
|
||
appara<72>tre.</p>
|
||
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="rotation" id="rotation">Rotation des journaux</a></h2>
|
||
|
||
|
||
<p>M<>me dans le cas d'un serveur mod<6F>r<EFBFBD>ment sollicit<69>, la quantit<69>
|
||
d'informations stock<63>es dans les fichiers journaux est tr<74>s importante.
|
||
Le fichier journal des acc<63>s grossit en g<>n<EFBFBD>ral d'1 Mo ou plus toutes
|
||
les 10000 requ<71>tes. Il est par cons<6E>quent n<>cessaire d'effectuer
|
||
p<>riodiquement la rotation des journaux en d<>pla<6C>ant ou supprimant les
|
||
fichiers correspondants. On ne peut pas le faire pendant que le serveur
|
||
est en cours d'ex<65>cution, car Apache httpd va continuer <20> <20>crire dans l'ancien
|
||
fichier journal aussi longtemps qu'il le maintiendra ouvert.
|
||
C'est pourquoi le serveur doit <20>tre
|
||
<a href="stopping.html">red<65>marr<72></a> apr<70>s le d<>placement ou la
|
||
suppression des fichiers journaux de fa<66>on <20> ce qu'il en ouvre
|
||
de nouveaux.</p>
|
||
|
||
<p>Avec un red<65>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 <20> <20>crire dans les anciens fichiers
|
||
journaux pendant qu'il termine le traitement des requ<71>tes en cours.
|
||
Il est donc n<>cessaire d'attendre un certain temps apr<70>s le r<>d<EFBFBD>marrage
|
||
avant d'effectuer tout traitement sur les fichiers journaux. Voici un
|
||
sc<73>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<70>sente une autre m<>thode de rotation des journaux
|
||
qui consiste <20> utiliser les
|
||
<a href="#piped">journaux redirig<69>s</a>.</p>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="piped" id="piped">Journaux redirig<69>s</a></h2>
|
||
|
||
|
||
<p>Nous avons vu que le d<>mon httpd <20>crivait les informations de
|
||
journalisation des erreurs et des acc<63>s dans un fichier journal ;
|
||
il peut aussi
|
||
rediriger ces informations vers un autre processus par l'interm<72>diaire d'un
|
||
tube de communication (pipe). Cette fonctionnalit<69> am<61>liore
|
||
consid<69>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<63>re pipe "<code>|</code>", suivi du nom de l'ex<65>cutable qui va
|
||
recueillir les entr<74>es de journal sur son entr<74>e
|
||
standard. Le serveur va
|
||
lancer le processus de redirection des journaux au moment du d<>marrage du
|
||
serveur, et le relancera s'il cesse de fonctionner
|
||
pendant l'ex<65>cution du serveur.
|
||
(Nous d<>nommons cette technique "journalisation
|
||
redirig<69>e fiable" gr<67>ce <20> cette derni<6E>re fonctionnalit<69>.)</p>
|
||
|
||
<p>Les processus de journalisation redirig<69>e sont lanc<6E>s par le processus
|
||
httpd parent, et h<>ritent de l'UID de ce dernier. Cela signifie que les
|
||
programmes de journalisation dirig<69>e s'ex<65>cutent g<>n<EFBFBD>ralement en tant que
|
||
root. Il est donc tr<74>s important que ces programmes soient simples et
|
||
s<>curis<69>s.</p>
|
||
|
||
<p>Un des grands avantages de la journalisation redirig<69>e est la possibilit<69>
|
||
d'effectuer la rotation des journaux sans avoir <20> red<65>marrer le serveur. Pour
|
||
accomplir cette t<>che, le serveur HTTP Apache fournit un programme simple
|
||
appel<65> <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<65>e par le tube de
|
||
communication a <20>t<EFBFBD> plac<61>e entre guillemets. Bien que cet exemple
|
||
concerne le journal des acc<63>s, la m<>me technique peut <20>tre utilis<69>e
|
||
pour le journal des erreurs.</p>
|
||
|
||
<p>Comme la journalisation conditionnelle, la journalisation redirig<69>e est
|
||
un outil tr<74>s puissant, mais si elle existe, il est pr<70>f<EFBFBD>rable d'utiliser
|
||
une solution plus simple comme le traitement <20> posteriori hors ligne.</p>
|
||
|
||
|
||
<p>Par d<>faut, le processus de redirection du journal est lanc<6E> sans
|
||
invoquer un shell. Pour invoquer un shell, utilisez "<code>|$</code>"
|
||
au lieu de "<code>|</code>" (en g<>n<EFBFBD>ral avec <code>/bin/sh -c</code>)
|
||
:</p>
|
||
|
||
<pre class="prettyprint lang-config"># Invocation de "rotatelogs" en utilisant un shell
|
||
CustomLog "|$/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common</pre>
|
||
|
||
|
||
|
||
<p>Il s'agissait du comportement par d<>faut sous Apache 2.2. Selon
|
||
les sp<73>cificit<69>s du shell, ceci peut g<>n<EFBFBD>rer un processus shell
|
||
suppl<70>mentaire pour toute la dur<75>e du programme de redirection du
|
||
journal, et induire des probl<62>mes de gestion de signaux au cours du
|
||
red<65>marrage. La notation "<code>||</code>" est aussi support<72>e pour
|
||
des raisons de compatibilit<69> avec Apache 2.2 et est <20>quivalente <20>
|
||
"<code>|</code>".</p>
|
||
|
||
<div class="note"><h3>Note <20> propos de la plateforme Windows</h3>
|
||
<p>Notez que sous Windows, la m<>moire allou<6F>e au bureau (desktop
|
||
heap) peut devenir insuffisante si vous utilisez de nombreux
|
||
processus vers lesquels sont redirig<69>s des journaux via un pipe, et
|
||
ceci particuli<6C>rement si httpd s'ex<65>cute en tant que service. La
|
||
quantit<69> de m<>moire du bureau allou<6F>e <20> chaque service est sp<73>cifi<66>e
|
||
dans le troisi<73>me argument du param<61>tre <code>SharedSection</code>
|
||
de la cl<63> de registre
|
||
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\SubSystems\Windows.
|
||
<strong>Modifiez cette valeur avec prudence</strong> ; les
|
||
pr<70>cautions d'usage s'imposent lorsqu'on modifie la base de registre,
|
||
mais vous pouvez aussi saturer la m<>moire du bureau si vous
|
||
sp<73>cifiez une valeur trop <20>lev<65>e.</p>
|
||
</div>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="virtualhost" id="virtualhost">H<>tes virtuels</a></h2>
|
||
|
||
|
||
<p>Lorsqu'un serveur poss<73>de plusieurs <a href="vhosts/">h<>tes virtuels</a>, il existe de nombreuses solutions pour g<>rer
|
||
les fichiers journaux. Par exemple, on peut utiliser les journaux comme
|
||
s'il s'agissait d'un serveur avec un seul h<>te. Il suffit pour cela de
|
||
placer les directives de journalisation en dehors des sections
|
||
<code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code> au niveau
|
||
du serveur principal, ce qui a pour effet de journaliser toutes les
|
||
requ<71>tes dans le m<>me journal des acc<63>s et des erreurs. Cette technique
|
||
est cependant inappropri<72>e pour recueillir des statistiques sur chaque
|
||
h<>te virtuel individuellement.</p>
|
||
|
||
<p>Si des directives <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> ou
|
||
<code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> sont plac<61>es dans une section
|
||
<code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code>, toutes les
|
||
requ<71>tes ou erreurs pour cet h<>te virtuel ne seront enregistr<74>es que dans
|
||
le fichier sp<73>cifi<66>. Tout h<>te virtuel qui ne poss<73>de pas de directives de
|
||
journalisation verra ses requ<71>tes enregistr<74>es dans le journal du serveur
|
||
principal. Cette technique est appropri<72>e pour un petit nombre d'h<>tes
|
||
virtuels, mais si ce nombre est important, elle peut devenir compliqu<71>e <20>
|
||
g<>rer. En outre, des probl<62>mes de <a href="vhosts/fd-limits.html">nombre de descripteurs
|
||
de fichiers insuffisant</a> peuvent rapidement appara<72>tre.</p>
|
||
|
||
<p>Il existe un tr<74>s bon compromis pour le journal des acc<63>s. En int<6E>grant
|
||
les informations <20> propos de l'h<>te virtuel <20> la cha<68>ne de format du
|
||
journal, il est possible de journaliser tous les h<>tes dans le m<>me
|
||
journal, puis de s<>parer ult<6C>rieurement le journal en plusieurs journaux
|
||
individuels. Consid<69>rons par exemple les directives suivantes :</p>
|
||
|
||
<pre class="prettyprint lang-config">LogFormat "%v %l %u %t \"%r\" %>s %b" comonvhost
|
||
CustomLog "logs/access_log" comonvhost</pre>
|
||
|
||
|
||
<p>Le champ <code>%v</code> sert <20> enregistrer le nom de l'h<>te virtuel qui
|
||
traite la requ<71>te. Un programme tel que <a href="programs/split-logfile.html">split-logfile</a> peut ensuite <20>tre utilis<69>
|
||
pour g<>n<EFBFBD>rer "<22> froid" autant de journaux que d'h<>tes virtuels.</p>
|
||
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
|
||
<div class="section">
|
||
<h2><a name="other" id="other">Autres fichiers journaux</a></h2>
|
||
|
||
|
||
<table class="related"><tr><th>Modules Apparent<6E>s</th><th>Directives Apparent<6E>es</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_logio.html">mod_logio</a></code></li><li><code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code></li><li><code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code></li><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code></li><li><code class="directive"><a href="./mod/mod_log_config.html#bufferedlogs">BufferedLogs</a></code></li><li><code class="directive"><a href="./mod/mod_log_forensic.html#forensiclog">ForensicLog</a></code></li><li><code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptloglength">ScriptLogLength</a></code></li></ul></td></tr></table>
|
||
|
||
<h3>Enregistrement du nombre r<>el d'octets envoy<6F>s et re<72>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<70>mentaires
|
||
(%I et %O) qui permettent d'enregistrer le nombre r<>el d'octets re<72>us et
|
||
envoy<6F>s sur le r<>seau.</p>
|
||
|
||
|
||
<h3>Journalisation de style investigation judiciaire (forensic logging)</h3>
|
||
|
||
|
||
<p>Le module <code class="module"><a href="./mod/mod_log_forensic.html">mod_log_forensic</a></code> permet la journalisation
|
||
<20> des fins d'investigation judiciaire des requ<71>tes des clients. La
|
||
journalisation est effectu<74>e avant et apr<70>s le traitement de la requ<71>te,
|
||
qui fait donc l'objet de deux entr<74>es dans le journal. Le g<>n<EFBFBD>rateur de
|
||
journaux d'investigation est tr<74>s strict et ne permet aucune
|
||
personnalisation. C'est un inestimable outil de d<>bogage et de s<>curit<69>.</p>
|
||
|
||
|
||
<h3><a name="pidfile" id="pidfile">Fichier PID</a></h3>
|
||
|
||
|
||
<p>Au d<>marrage, le d<>mon httpd Apache enregistre l'identifiant du
|
||
processus httpd parent dans le fichier <code>logs/httpd.pid</code>.
|
||
Le nom de ce fichier peut <20>tre modifi<66> <20> l'aide de la directive
|
||
<code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>. Cet identifiant
|
||
permet <20> l'administrateur de red<65>marrer et arr<72>ter le d<>mon en
|
||
envoyant des signaux au processus parent ; sous Windows, vous devez
|
||
utiliser l'option de ligne de commande -k. Pour plus de d<>tails,
|
||
consulter la page <a href="stopping.html">Arr<72>t et red<65>marrage</a>.</p>
|
||
|
||
|
||
<h3><a name="scriptlog" id="scriptlog">Journal des scripts</a></h3>
|
||
|
||
|
||
<p>Afin de faciliter le d<>bogage, la directive
|
||
<code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code> vous permet
|
||
d'enregistrer les entr<74>es et sorties des scripts CGI. Elle ne doit <20>tre
|
||
utilis<69>e que pendant la phase de test, et en aucun cas sur un
|
||
serveur en production. Vous trouverez plus d'informations dans la
|
||
documentation du module <a href="mod/mod_cgi.html">mod_cgi</a>.</p>
|
||
|
||
|
||
</div></div>
|
||
<div class="bottomlang">
|
||
<p><span>Langues Disponibles: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English"> en </a> |
|
||
<a href="./fr/logs.html" title="Fran<61>ais"> fr </a> |
|
||
<a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
|
||
<a href="./tr/logs.html" hreflang="tr" rel="alternate" title="T<>rk<72>e"> tr </a></p>
|
||
</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
|
||
<script type="text/javascript"><!--//--><![CDATA[//><!--
|
||
var comments_shortname = 'httpd';
|
||
var comments_identifier = 'http://httpd.apache.org/docs/trunk/logs.html';
|
||
(function(w, d) {
|
||
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
|
||
d.write('<div id="comments_thread"><\/div>');
|
||
var s = d.createElement('script');
|
||
s.type = 'text/javascript';
|
||
s.async = true;
|
||
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
|
||
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
|
||
}
|
||
else {
|
||
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
|
||
}
|
||
})(window, document);
|
||
//--><!]]></script></div><div id="footer">
|
||
<p class="apache">Copyright 2016 The Apache Software Foundation.<br />Autoris<69> sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
|
||
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
|
||
if (typeof(prettyPrint) !== 'undefined') {
|
||
prettyPrint();
|
||
}
|
||
//--><!]]></script>
|
||
</body></html> |