upload http
[bottlenecks.git] / rubbos / app / httpd-2.0.64 / docs / manual / logs.html.es
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Archivos de Registro (Log Files) - Servidor HTTP Apache</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p>
15 <p class="apache">Versión 2.0 del Servidor HTTP Apache</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentación</a> &gt; <a href="./">Versión 2.0</a></div><div id="page-content"><div id="preamble"><h1>Archivos de Registro (Log Files)</h1>
20 <div class="toplang">
21 <p><span>Idiomas disponibles: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
22 <a href="./es/logs.html" title="Español">&nbsp;es&nbsp;</a> |
23 <a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
24 <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
25 <a href="./tr/logs.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
26 </div>
27 <div class="outofdate">Esta traducción podría estar
28             obsoleta. Consulte la versión en inglés de la
29             documentación para comprobar si se han producido cambios
30             recientemente.</div>
31
32     <p>Para administrar de manera efectiva un servidor web, es
33     necesario tener registros de la actividad y el rendimiento del
34     servidor así como de cualquier problema que haya podido
35     ocurrir durante su operación. El servidor HTTP Apache ofrece
36     capacidades muy amplias de registro de este tipo de
37     información. Este documento explica cómo configurar esas
38     capacidades de registro, y cómo comprender qué
39     información contienen los ficheros de registro.</p>
40   </div>
41 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#security">Advertencia de seguridad</a></li>
42 <li><img alt="" src="./images/down.gif" /> <a href="#errorlog">Registro de Errores (Error Log)</a></li>
43 <li><img alt="" src="./images/down.gif" /> <a href="#accesslog">Registro de Acceso (Access Log)</a></li>
44 <li><img alt="" src="./images/down.gif" /> <a href="#rotation">Rotación de los ficheros de registro</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#piped">Ficheros de registro redireccionados (Piped Logs)</a></li>
46 <li><img alt="" src="./images/down.gif" /> <a href="#virtualhost">Hosts Virtuales</a></li>
47 <li><img alt="" src="./images/down.gif" /> <a href="#other">Otros ficheros de registro</a></li>
48 </ul></div>
49 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
50 <div class="section">
51 <h2><a name="security" id="security">Advertencia de seguridad</a></h2>
52     
53
54     <p>Cualquiera que tenga permisos de escritura sobre el directorio
55     en el que Apache esté escribiendo un archivo de registro
56     puede con casi toda seguridad tener acceso al identificador de
57     usuario con el que se inició el servidor, normalmente
58     root. <em>NO</em> le de a nadie permisos de escritura sobre el
59     directorio en que se almacenan los ficheros de registro sin tener
60     en cuenta las consecuencias; consulte los <a href="misc/security_tips.html">consejos de seguridad</a> para
61     obtener más información.</p>
62
63     <p>Además, los ficheros de registro pueden contener
64     información suministrada directamente por el cliente, sin
65     sustituir. Es posible por tanto que clientes con malas intenciones
66     inserten caracteres de control en los ficheros de registro. Por
67     ello es necesario tener cuidado cuando se procesan los ficheros de
68     registro originales.</p>
69   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
70 <div class="section">
71 <h2><a name="errorlog" id="errorlog">Registro de Errores (Error Log)</a></h2>
72     
73
74     <table class="related"><tr><th>Módulos Relacionados</th><th>Directivas Relacionadas</th></tr><tr><td /><td><ul><li><code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code></li><li><code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code></li></ul></td></tr></table>
75
76     <p>El registro de errores del servidor, cuyo nombre y
77     ubicación se especifica en la directiva <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code>, es el más importante de
78     todos los registros. Apache enviará cualquier
79     información de diagnóstico y registrará cualquier
80     error que encuentre al procesar peticiones al archivo de registro
81     seleccionado. Es el primer lugar donde tiene que mirar cuando
82     surja un problema al iniciar el servidor o durante su
83     operación normal, porque con frecuencia encontrará en
84     él información detallada de qué ha ido mal y
85     cómo solucionar el problema.</p>
86
87     <p>El registro de errores se escribe normalmente en un fichero
88     (cuyo nombre suele ser <code>error_log</code> en sistemas Unix y
89     <code>error.log</code> en Windows y OS/2). En sistemas Unix
90     también es posible hacer que el servidor envíe los
91     mensajes de error al <code>syslog</code> o <a href="#piped">pasarlos a un programa</a>.</p>
92
93     <p>El formato del registro de errores es relativamente libre y
94     descriptivo. No obstante, hay cierta información que se
95     incluye en casi todas las entradas de un registro de errores. Por
96     ejemplo, este es un mensaje típico.</p>
97
98     <div class="example"><p><code>
99       [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1]
100       client denied by server configuration:
101       /export/home/live/ap/htdocs/test
102     </code></p></div>
103
104     <p>El primer elemento de la entrada es la fecha y la hora del
105     mensaje. El segundo elemento indica la gravedad del error que se
106     ha producido. La directiva <code class="directive"><a href="./mod/core.html#loglevel">LogLevel</a></code> se usa para controlar los tipos
107     de errores que se envían al registro de errores según su
108     gravedad. La tercera parte contiene la dirección IP del
109     cliente que generó el error. Después de la dirección
110     IP está el mensaje de error propiamente dicho, que en este
111     caso indica que el servidor ha sido configurado para denegar el
112     acceso a ese cliente. El servidor reporta también la ruta en
113     el sistema de ficheros (en vez de la ruta en el servidor
114     web) del documento solicitado.</p>
115
116     <p>En el registro de errores puede aparecer una amplia variedad de
117     mensajes diferentes. La mayoría tienen un aspecto similar al
118     del ejemplo de arriba. El registro de errores también
119     contiene mensaje de depuración de scripts CGI. Cualquier
120     información escrita en el <code>stderr</code> por un script
121     CGI se copiará directamente en el registro de errores.</p>
122
123     <p>El registro de errores no se puede personalizar añadiendo
124     o quitando información. Sin embargo, las entradas del
125     registro de errores que se refieren a determinadas peticiones
126     tienen sus correspondientes entradas en el <a href="#accesslog">registro de acceso</a>. El ejemplo de arriba se
127     corresponde con una entrada en el registro de acceso que
128     tendrá un código de estado 403. Como es posible
129     personalizar el registro de acceso, puede obtener más
130     información sobre los errores que se producen usando ese
131     registro también.</p>
132
133     <p>Si hace pruebas, suele ser de utilidad monitorizar de forma
134     continua el registro de errores para comprobar si ocurre
135     algún problema. En sistemas Unix, puede hacer esto
136     usando:</p>
137
138     <div class="example"><p><code>
139       tail -f error_log
140     </code></p></div>
141   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
142 <div class="section">
143 <h2><a name="accesslog" id="accesslog">Registro de Acceso (Access Log)</a></h2>
144     
145
146     <table class="related"><tr><th>Módulos Relacionados</th><th>Directivas Relacionadas</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>
147
148     <p>El servidor almacena en el registro de acceso información
149     sobre todas las peticiones que procesa. La ubicación del
150     fichero de registro y el contenido que se registra se pueden
151     modificar con la directiva <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>. Puede usar la
152     directiva <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code>
153     para simplificar la selección de los contenidos que quiere
154     que se incluyan en los registros. Esta sección explica como
155     configurar el servidor para que registre la información que
156     usted considere oportuno en el registro de acceso.</p>
157
158     <p>Por supuesto, almacenar información en el registro de
159     acceso es solamente el principio en la gestión de los
160     registros. El siguiente paso es analizar la información que
161     contienen para producir estadísticas que le resulten de
162     utilidad. Explicar el análisis de los registros en general
163     está fuera de los propósitos de este documento, y no es
164     propiamente una parte del trabajo del servidor web. Para más
165     información sobre este tema, y para aplicaciones que analizan
166     los registros, puede visitar
167     <a href="http://dmoz.org/Computers/Software/Internet/Site_Management/Log_analysis/">
168     Open Directory</a> o <a href="http://dir.yahoo.com/Computers_and_Internet/Software/Internet/World_Wide_Web/Servers/Log_Analysis_Tools/">
169     Yahoo</a>.</p>
170
171     <p>Diferentes versiones de Apache httpd han usado otros
172     módulos y directivas para controlar la información que
173     se almacena en el registro de acceso, incluyendo mod_log_referer,
174     mod_log_agent, y la directiva <code>TransferLog</code>. Ahora la
175     directiva <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>
176     asume toda la funcionalidad que antes estaba repartida.</p>
177
178     <p>El formato del registro de acceso es altamente configurable. El
179     formato se especifica usando una cadena de caracteres de formato
180     similar a las de printf(1) en lenguaje C. Hay algunos ejemplos en
181     las siguientes secciones. Si quiere una lista completa de los
182     posibles contenidos que se pueden incluir, consulte la
183     documentació sobre <a href="mod/mod_log_config.html#formats">las cadenas de caracteres
184     de formato</a> del <code class="module"><a href="./mod/mod_log_config.html">mod_log_config</a></code>.</p>
185
186     <h3><a name="common" id="common">Formato Común de Registro (Common Log
187       Format)</a></h3>
188       
189
190       <p>Una configuración típica del registro de acceso
191       podría tener un aspecto similar a este.</p>
192
193       <div class="example"><p><code>
194         LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
195          CustomLog logs/access_log common
196       </code></p></div>
197
198       <p>Con esto se define el <em>apodo (nickname)</em> <code>common</code> y se
199       le lo asocia con un determinado formato. El formato consiste en
200       una serie de directivas con tantos por ciento, cada una de las
201       cuales le dice al servidor que registre una determinada
202       información en particular. El formato también puede
203       incluir caracteres literales, que se copiarán directamente
204       en el registro. Si usa el caracter comillas (<code>"</code>)
205       debe anteponerle una barra invertida para evitar que sea
206       interpretado como el final la cadena de caracteres a
207       registrar. El formato que especifique también puede
208       contener los caracteres de control especiales "<code>\n</code>"
209       para salto de línea y "<code>\t</code>" para tabulador.</p>
210
211       <p>La directiva <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> crea un nuevo
212           fichero de registro usando el <em>apodo</em> definido. El
213           nombre del fichero de registro de acceso se asume que es
214           relativo al valor especificado en <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code> a no ser que empiece
215           por una barra (/).</p>
216
217       <p>La configuración de arriba escribirá las entradas
218       en el registro con el formato conocido como Formato Común
219       de Registro (CLF). Este formato estándar lo pueden generar
220       muchos servidores web diferentes y lo pueden leer muchos de los
221       progrmas que analizan registros. Las entradas de un fichero de
222       registro que respetan ese formato común tienen una
223       aparariencia parecida es esta:</p>
224
225       <div class="example"><p><code>
226         127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
227         /apache_pb.gif HTTP/1.0" 200 2326
228       </code></p></div>
229
230       <p>Cada una de las partes de la entrada se explican a
231       continuaci#243;n.</p>
232
233       <dl>
234         <dt><code>127.0.0.1</code> (<code>%h</code>)</dt>
235
236         <dd>Es la dirección IP del cliente (host remoto) que hizo
237         la petición al servidor. Si la directiva <code class="directive"><a href="./mod/core.html#hostnamelookups">HostnameLookups</a></code> tiene valor
238         <code>On</code>, el servidor intentará determinar el
239         nombre del host y registrar ese nombre en lugar de la
240         dirección IP. Sin embargo, no se recomienda que use esta
241         configuración porque puede ralentizar significativamente
242         las operaciones del servidor. En su lugar, es mejor usar un
243         programa que realice esta tarea posteriormente sobre el
244         registro, por ejemplo <code class="program"><a href="./programs/logresolve.html">logresolve</a></code>. Las
245         direcciones IP que se registren no son necesariamente las
246         direcciones de las máquinas de los usuarios finales. Si
247         existe un servidor proxy entre el usuario final y el servidor,
248         la dirección que se registra es la del proxy.</dd>
249
250         <dt><code>-</code> (<code>%l</code>)</dt>
251
252         <dd>Un "guión" siginifica que la información que
253         debería ir en ese lugar no está disponible. En este
254         caso, esa información es la identidad RFC 1413 del
255         cliente determinada por <code>identd</code> en la máquina
256         del cliente. Esta información es muy poco fiable y no
257         debería ser usada nunca excepto con clientes que
258         estén sometidos a controles muy estrictos en redes
259         internas. Apache httpd ni siquiera intenta recoger esa
260         información a menos que la directiva <code class="directive"><a href="./mod/core.html#identitycheck">IdentityCheck</a></code> tenga valor
261         <code>On</code>.</dd>
262
263         <dt><code>frank</code> (<code>%u</code>)</dt>
264
265         <dd>Este es el identificador de usuario de la persona que
266         solicita el documento determinado por la autentificación
267         HTTP. Normalmente ese mismo valor se pasa a los scripts CGI
268         con la variable de entorno <code>REMOTE_USER</code>. Si el
269         código de estado de la petición (ver abajo) es 401,
270         entonces no debe confiar en la veracidad de ese dato porque el
271         usuario no ha sido aún autentificado. Si el documento no
272         está protegido por contraseña, se mostrará un
273         guión "<code>-</code>" en esta entrada.</dd>
274
275         <dt><code>[10/Oct/2000:13:55:36 -0700]</code>
276         (<code>%t</code>)</dt>
277
278         <dd>
279           La hora a la que el servidor recibió la
280           petición. El formato es:
281
282           <p class="indent">
283             <code>[día/mes/año:hora:minuto:segundo zona_horaria]<br />
284              day = 2*digit<br />
285              month = 3*letter<br />
286              year = 4*digit<br />
287              hour = 2*digit<br />
288              minute = 2*digit<br />
289              second = 2*digit<br />
290              zone = (`+' | `-') 4*digit</code>
291           </p>
292           Es posible mostrar la hora de otra manera especificando
293           <code>%{format}</code> en el formato a usar en el registro,
294           donde <code>format</code> se sustituye como se haría al
295           usar <code>strftime(3)</code> de la librería
296           estándar de C.
297         </dd>
298
299         <dt><code>"GET /apache_pb.gif HTTP/1.0"</code>
300         (<code>\"%r\"</code>)</dt>
301
302         <dd>La línea de la petición del cliente se muestra
303         entre dobles comillas. La línea de petición contiene
304         mucha información de utilidad. Primero, el método
305         usado por el cliente es <code>GET</code>. Segundo, el cliente
306         ha hecho una petición al recurso
307         <code>/apache_pb.gif</code>, y tercero, el cliente uso el
308         protocolo <code>HTTP/1.0</code>. También es posible
309         registrar una o más partes de la línea de
310         petición independientemente. Por ejemplo, el formato
311         "<code>%m %U%q %H</code>" registrará el método, ruta,
312         cadena de consulta y protocolo, teniendo exactamente el mismo
313         resultado que "<code>%r</code>".</dd>
314
315         <dt><code>200</code> (<code>%&gt;s</code>)</dt>
316
317         <dd>Es el código de estado que el servidor envía de
318         vuelta al cliente. Esta información es muy valiosa,
319         porque revela si la petición fue respondida con
320         éxito por el servidor (los códigos que empiezan por
321         2), una redirección (los códigos que empiezan por
322         3), un error provocado por el cliente (los códigos que
323         empiezan por 4), o un error en el servidor (los códigos
324         que empiezan por 5). La lista completa de códigos de
325         estado posibles puede consultarle en <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.txt">la
326         especificación de HTTP</a> (RFC2616 sección
327         10).</dd>
328
329         <dt><code>2326</code> (<code>%b</code>)</dt>
330
331         <dd>La última entrada indica el tamaño del objeto
332         retornado por el cliente, no incluídas las cabeceras de
333         respuesta. Si no se respondió con ningún contenido
334         al cliente, este valor mostrará valor
335         "<code>-</code>". Para registrar "<code>0</code>" en ese caso,
336         use <code>%B</code> en su lugar.</dd>
337       </dl>
338     
339
340     <h3><a name="combined" id="combined">Formato de Registro Combinado (Combined Log Format)</a></h3>
341       
342
343       <p>Otro formato usado a menudo es el llamado Formato de Registro
344       Combinado. Este formato puede ser usado como sigue.</p>
345
346       <div class="example"><p><code>
347         LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\"
348         \"%{User-agent}i\"" combined<br />
349          CustomLog log/access_log combined
350       </code></p></div>
351
352       <p>Es exactamente igual que Formato Común de Registro, pero
353       añade dos campos. Cada campo adicional usa la directiva
354       <code>%{<em>header</em>}i</code>, donde <em>header</em> puede
355       ser cualquier cabecera de petición HTTP. El registro de
356       acceso cuando se usa este formato tendrá este aspecto:</p>
357
358       <div class="example"><p><code>
359         127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET
360         /apache_pb.gif HTTP/1.0" 200 2326
361         "http://www.example.com/start.html" "Mozilla/4.08 [en]
362         (Win98; I ;Nav)"
363       </code></p></div>
364
365       <p>Los campos adicionales son:</p>
366
367       <dl>
368         <dt><code>"http://www.example.com/start.html"</code>
369         (<code>\"%{Referer}i\"</code>)</dt>
370
371         <dd>La cabecera de petición de HTTP "Referer"
372         (sic). Muestra el servidor del que proviene el cliente. (Esta
373         debería ser la página que contiene un enlace o
374         que contiene a <code>/apache_pb.gif</code>).</dd>
375
376         <dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code>
377         (<code>\"%{User-agent}i\"</code>)</dt>
378
379         <dd>La cabecera de petición HTTP "User-Agent". Es la
380         información de identificación que el navegador del
381         cliente incluye sobre sí mismo.</dd>
382       </dl>
383     
384
385     <h3><a name="multiple" id="multiple">Cómo usar varios registros de acceso</a></h3>
386       
387
388       <p>Para crear varios registros de acceso solamente tiene que
389       especificar varias directivas <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> en el fichero de
390       configuración. Por ejemplo, las siguientes directivas
391       crearán tres registros de acceso. El primero contendrá
392       la información básica en Formato Común de
393       Registro, mientras que el segundo y el tercero contendrán
394       contendrán la información de los "referer" y de los
395       navegadores usados. Las dos últimas líneas <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> muestran cómo
396       reproducir el comportamiento de las directivas
397       <code>ReferLog</code> y <code>AgentLog</code>.</p>
398
399       <div class="example"><p><code>
400         LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
401         CustomLog logs/access_log common<br />
402         CustomLog logs/referer_log "%{Referer}i -&gt; %U"<br />
403         CustomLog logs/agent_log "%{User-agent}i"
404       </code></p></div>
405
406       <p>Este ejemplo también muestra que no es necesario definir un
407       "apodo" con la directiva <code class="directive"><a href="./mod/mod_log_config.html#logformat">LogFormat</a></code>. En lugar de esto,
408       el formato de registro puede especificarse directamente en la
409       directiva <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code>.</p>
410     
411
412     <h3><a name="conditional" id="conditional">Registro Condicional</a></h3>
413       
414
415       <p>Algunas veces es más conveniente excluir determinadas
416       entradas del registro de acceso en función de las
417       características de la petición del cliente. Puede
418       hacer esto fácilmente con la ayuda de <a href="env.html">variables de entorno</a>. Primero, debe
419       especificar una variable de entorno que indique que la
420       petición cumple determinadas condiciones. Esto se hace
421       normalmente con <code class="directive"><a href="./mod/mod_setenvif.html#setenvif">SetEnvIf</a></code>. Entonces puede usar
422       la claúsula <code>env=</code> de la directiva <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> para incluir o
423       excluir peticiones en las que esté presente la variable de
424       entorno. Algunos ejemplos:</p>
425
426       <div class="example"><p><code>
427         # Marcar las peticiones de la interfaz loop-back<br />
428         SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog<br /> 
429         # Marcar las peticiones del fichero robots.txt<br /> 
430         SetEnvIf Request_URI "^/robots\.txt$" dontlog<br /> 
431         # Registrar lo que quede<br />
432         CustomLog logs/access_log common env=!dontlog
433       </code></p></div>
434
435       <p>Como otro ejemplo, considere registrar las peticiones de los
436       angloparlantes en un fichero de registro, y el resto de
437       peticiones en un fichero de registro diferente.</p>
438
439       <div class="example"><p><code>
440         SetEnvIf Accept-Language "en" english<br />
441         CustomLog logs/english_log common env=english<br />
442         CustomLog logs/non_english_log common env=!english
443       </code></p></div>
444
445       <p>Aunque acabamos de mostar que el registro condicional es muy
446       potente y flexible, no es la única manera de controlar los
447       contenidos de los ficheros de registro. Los ficheros de registro
448       son más útiles cuanta más información sobre
449       la actividad del servidor contengan. A menudo es más
450       fácil eliminar las peticiones que no le interesen
451       procesando posteriormente los ficheros de registro
452       originales.</p>
453     
454   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
455 <div class="section">
456 <h2><a name="rotation" id="rotation">Rotación de los ficheros de registro</a></h2>
457     
458
459     <p>Incluso en un servidor con una actividad moderada, la cantidad
460     de información almacenada en los ficheros de registro es muy
461     grande. El registro de acceso crece normalmente en 1MB por cada
462     10.000 peticiones. Por lo tanto, es necesario rotar
463     periódicamente los registros moviendo o borrando su
464     contenido. Esto no se puede hacer con el servidor funcionando,
465     porque Apache continuará escribiendo en el antiguo registro
466     mientras que el archivo esté abierto. En lugar de esto, el
467     servidor debe ser <a href="stopping.html">reiniciado</a>
468     después de mover o borrar los ficheros de registro para que
469     se abran nuevos ficheros de registro.</p>
470
471     <p>Usando un reinicio <em>graceful</em>, se le puede indicar al
472     servidor que abra nuevos ficheros de registro sin perder ninguna
473     petición siendo servida o en espera de algún cliente. Sin
474     embargo, para hacer esto, el servidor debe continuar escribiendo
475     en los ficheros de registro antiguos mientras termina de servir
476     esas peticiones. Por lo tanto, es preciso esperar algún
477     tiempo después del reinicio antes de realizar ninguna
478     operación sobre los antiguos ficheros de registro. Una
479     situación típica que simplemente rota los registros y
480     comprime los registros antiguos para ahorrar espacio es:</p>
481
482     <div class="example"><p><code>
483       mv access_log access_log.old<br />
484       mv error_log error_log.old<br />
485       apachectl graceful<br />
486       sleep 600<br />
487       gzip access_log.old error_log.old
488     </code></p></div>
489
490     <p>Otra manera de realizar la rotación de los registros es
491     usando <a href="#piped">ficheros de registro redireccionados
492     (piped logs)</a> de la forma en que se explica en la siguiente
493     sección.</p>
494   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
495 <div class="section">
496 <h2><a name="piped" id="piped">Ficheros de registro redireccionados (Piped Logs)</a></h2>
497     
498
499     <p>Apache httpd es capaz de escribir la información del
500     registro de acceso y errores mediante una redirección a otro
501     proceso, en lugar de directamente a un fichero. Esta capacidad
502     incrementa de forma muy importante la flexibilidad de registro,
503     sin añadir código al servidor principal. Para escribir
504     registros a una redirección, simplemente reemplace el nombre
505     de fichero por el carácter "<code>|</code>", seguido por el
506     nombre del ejecutable que debería aceptar las entradas de
507     registro por su canal de entrada estándar. Apache
508     iniciará el proceso de registro redireccionado cuando se
509     inicie el servidor, y lo reiniciará si se produce algún
510     error irrecuperable durante su ejecución. (Esta última
511     funcionalidad es la que hace que se llame a esta técnica
512     "registro redireccionado fiable".)</p>
513
514     <p>Los procesos de registros son engendrados por el proceso padre
515     de Apache httpd, y heredan el identificador de usuario de ese
516     proceso. Esto significa que los programas a los que se
517     redireccionan los registros se ejecutan normalmente como root. Es
518     por ello que es muy importante que los programas sean simples y
519     seguros.</p>
520
521     <p>Un uso importante de los registros redireccionados es permitir
522     la rotación de los registros sin tener que reiniciar el
523     servidor. El servidor Apache HTTP incluye un programa simple
524     llamado <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code> con este propósito. Por
525     ejemplo para rotar los registros cada 24 horas, puede usar:</p>
526
527     <div class="example"><p><code>
528       CustomLog "|/usr/local/apache/bin/rotatelogs
529       /var/log/access_log 86400" common
530     </code></p></div>
531
532     <p>Tenga en cuenta que las comillas se usan para abarcar el
533     comando entero que será invocado por la
534     redirección. Aunque estos ejemplos son para el registro de
535     acceso, la misma técnica se puede usar para el registro de
536     errores.</p>
537
538     <p>Otro programa para la rotación de los registros mucho
539     más flexible llamado <a href="http://www.cronolog.org/">cronolog</a> está disponible
540     en un sitio web externo.</p>
541
542     <p>Como ocurre con el registro condicional, la redirección de
543     registros es una herramienta muy potente, pero no deben ser usados
544     si hay disponible una solución más simple de procesado
545     posterior de los registros fuera de línea.</p>
546   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
547 <div class="section">
548 <h2><a name="virtualhost" id="virtualhost">Hosts Virtuales</a></h2>
549     
550
551     <p>Cuando se está ejecutando un servidor con muchos <a href="vhosts/">hosts virtuales</a>, hay varias formas de abordar
552     el asunto de los registros. Primero, es posible usar los registros
553     de la misma manera que se usarían si hubiera solamente un
554     host en el servidor. Simplemente poniendo las directivas que
555     tienen que ver con los registros fuera de las secciones <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> en el
556     contexto del servidor principal, puede almacenar toda la
557     información de todas las peticiones en los mismos registros
558     de acceso y errores. Esta técnica no permite una
559     recolección fácil de las estadísticas individuales
560     de cada uno de los hosts virtuales.</p>
561
562     <p>Si una directiva <code class="directive"><a href="./mod/mod_log_config.html#customlog">CustomLog</a></code> o <code class="directive"><a href="./mod/core.html#errorlog">ErrorLog</a></code> se pone dentro una sección
563     <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>,
564     todas las peticiones de ese host virtual se registrarán
565     solamente en el fichero especificado. Las peticiones de cualquier
566     host virtual que no tenga directivas de registro específicas
567     para él se registrarán en los registros del servidor
568     principal. Esta técnica es muy útil si usa un
569     pequeño número de hosts virtuales, pero si usa un gran
570     número de ellos, puede ser complicado de
571     gestionar. Además, puede a menudo provocar problemas con <a href="vhosts/fd-limits.html"> descriptores de fichero
572     insuficientes</a>.</p>
573
574     <p>Para el registro de acceso, se puede llegar a un buen
575     equilibrio. Añadiendo información del host virtual al
576     formato de registro, es posible registrar las operaciones de todos
577     los hosts en un único registro, y posteriormente dividir el
578     fichero con todos los registros en ficheros individualizados. Por
579     ejemplo, considere las siguientes directivas.</p>
580
581     <div class="example"><p><code>
582       LogFormat "%v %l %u %t \"%r\" %&gt;s %b"
583       comonvhost<br />
584       CustomLog logs/access_log comonvhost
585     </code></p></div>
586
587     <p>El <code>%v</code> se usa para registrar el nombre del host
588     virtual que está sirviendo la petición. Puede usar un
589     programa como <a href="programs/other.html">split-logfile</a> para
590     procesar posteriormente el registro de acceso y dividirlo en
591     ficheros independientes para cada host virtual.</p>
592   </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
593 <div class="section">
594 <h2><a name="other" id="other">Otros ficheros de registro</a></h2>
595     
596
597     <table class="related"><tr><th>Módulos Relacionados</th><th>Directivas Relacionadas</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_cgi.html">mod_cgi</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritelog">RewriteLog</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewriteloglevel">RewriteLogLevel</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptlogbuffer">ScriptLogBuffer</a></code></li><li><code class="directive"><a href="./mod/mod_cgi.html#scriptloglength">ScriptLogLength</a></code></li></ul></td></tr></table>
598
599     <h3><a name="pidfile" id="pidfile">Fichero PID (PID File)</a></h3>
600       
601
602       <p>Al iniciar, Apache httpd guarda el identificador del proceso
603       padre del servidor en el fichero
604       <code>logs/httpd.pid</code>. Puede modificar el nombre de este
605       fichero con la directiva <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>. El identificador del
606       proceso puede usarlo el administrador para reiniciar y finalizar
607       el demonio (daemon) mediante el envío de señales al
608       proceso padre; en Windows, use la opción de línea de
609       comandos -k en su lugar.  Para más información al
610       respecto, consulte la documentación sobre <a href="stopping.html">parar y reiniciar Apache</a>.</p>
611     
612
613     <h3><a name="scriptlog" id="scriptlog">Registro de actividad de scripts (Script Log)</a></h3>
614       
615
616       <p>Para ayudar a la detección de errores, la directiva
617       <code class="directive"><a href="./mod/mod_cgi.html#scriptlog">ScriptLog</a></code> permite
618       guardar la entrada y la salida de los scripts CGI. Esta
619       directiva solamente debería usarla para hacer pruebas - no
620       en servidores en producción.  Puede encontrar más
621       información al respecto en la documentación de <a href="mod/mod_cgi.html">mod_cgi</a>.</p>
622     
623
624     <h3><a name="rewritelog" id="rewritelog">Registro de actividad de Rewrite (Rewrite Log)</a></h3>
625       
626
627       <p>Cuando use las potentes y complejas funcionalidades de <a href="mod/mod_rewrite.html">mod_rewrite</a>, será casi
628       siempre necesario usar la direcitiva <code class="directive"><a href="./mod/mod_rewrite.html#rewritelog">RewriteLog</a></code> para ayudar a la
629       detección de errores. Este fichero de registro produce un
630       análisis detallado de cómo actúa este
631       módulo sobre las peticiones. El nivel de detalle del
632       registro se controla con la directiva <code class="directive"><a href="./mod/mod_rewrite.html#rewriteloglevel">RewriteLogLevel</a></code>.</p>
633     
634   </div></div>
635 <div class="bottomlang">
636 <p><span>Idiomas disponibles: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
637 <a href="./es/logs.html" title="Español">&nbsp;es&nbsp;</a> |
638 <a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
639 <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
640 <a href="./tr/logs.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
641 </div><div id="footer">
642 <p class="apache">Copyright 2009 The Apache Software Foundation.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
643 <p class="menu"><a href="./mod/">Módulos</a> | <a href="./mod/directives.html">Directivas</a> | <a href="./faq/">Preguntas Frecuentes</a> | <a href="./glossary.html">Glosario</a> | <a href="./sitemap.html">Mapa de este sitio web</a></p></div>
644 </body></html>