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
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="<-" alt="<-" src="./images/left.gif" /></a></div>
19 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="./">Versión 2.0</a></div><div id="page-content"><div id="preamble"><h1>Archivos de Registro (Log Files)</h1>
21 <p><span>Idiomas disponibles: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English"> en </a> |
22 <a href="./es/logs.html" title="Español"> es </a> |
23 <a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
24 <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
25 <a href="./tr/logs.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
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
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>
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>
49 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
51 <h2><a name="security" id="security">Advertencia de seguridad</a></h2>
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>
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>
71 <h2><a name="errorlog" id="errorlog">Registro de Errores (Error Log)</a></h2>
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>
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>
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>
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>
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
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>
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>
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>
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
138 <div class="example"><p><code>
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>
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>
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>
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/">
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>
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>
186 <h3><a name="common" id="common">Formato Común de Registro (Common Log
190 <p>Una configuración típica del registro de acceso
191 podría tener un aspecto similar a este.</p>
193 <div class="example"><p><code>
194 LogFormat "%h %l %u %t \"%r\" %>s %b" common<br />
195 CustomLog logs/access_log common
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>
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>
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>
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
230 <p>Cada una de las partes de la entrada se explican a
231 continuaci#243;n.</p>
234 <dt><code>127.0.0.1</code> (<code>%h</code>)</dt>
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>
250 <dt><code>-</code> (<code>%l</code>)</dt>
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>
263 <dt><code>frank</code> (<code>%u</code>)</dt>
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>
275 <dt><code>[10/Oct/2000:13:55:36 -0700]</code>
276 (<code>%t</code>)</dt>
279 La hora a la que el servidor recibió la
280 petición. El formato es:
283 <code>[día/mes/año:hora:minuto:segundo zona_horaria]<br />
285 month = 3*letter<br />
288 minute = 2*digit<br />
289 second = 2*digit<br />
290 zone = (`+' | `-') 4*digit</code>
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
299 <dt><code>"GET /apache_pb.gif HTTP/1.0"</code>
300 (<code>\"%r\"</code>)</dt>
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>
315 <dt><code>200</code> (<code>%>s</code>)</dt>
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
329 <dt><code>2326</code> (<code>%b</code>)</dt>
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>
340 <h3><a name="combined" id="combined">Formato de Registro Combinado (Combined Log Format)</a></h3>
343 <p>Otro formato usado a menudo es el llamado Formato de Registro
344 Combinado. Este formato puede ser usado como sigue.</p>
346 <div class="example"><p><code>
347 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
348 \"%{User-agent}i\"" combined<br />
349 CustomLog log/access_log combined
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>
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]
365 <p>Los campos adicionales son:</p>
368 <dt><code>"http://www.example.com/start.html"</code>
369 (<code>\"%{Referer}i\"</code>)</dt>
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>
376 <dt><code>"Mozilla/4.08 [en] (Win98; I ;Nav)"</code>
377 (<code>\"%{User-agent}i\"</code>)</dt>
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>
385 <h3><a name="multiple" id="multiple">Cómo usar varios registros de acceso</a></h3>
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>
399 <div class="example"><p><code>
400 LogFormat "%h %l %u %t \"%r\" %>s %b" common<br />
401 CustomLog logs/access_log common<br />
402 CustomLog logs/referer_log "%{Referer}i -> %U"<br />
403 CustomLog logs/agent_log "%{User-agent}i"
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>
412 <h3><a name="conditional" id="conditional">Registro Condicional</a></h3>
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>
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
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>
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
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
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>
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>
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>
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 />
487 gzip access_log.old error_log.old
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
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>
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>
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
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>
527 <div class="example"><p><code>
528 CustomLog "|/usr/local/apache/bin/rotatelogs
529 /var/log/access_log 86400" common
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
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>
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>
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"><VirtualHost></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>
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"><VirtualHost></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>
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>
581 <div class="example"><p><code>
582 LogFormat "%v %l %u %t \"%r\" %>s %b"
584 CustomLog logs/access_log comonvhost
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>
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>
599 <h3><a name="pidfile" id="pidfile">Fichero PID (PID File)</a></h3>
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>
613 <h3><a name="scriptlog" id="scriptlog">Registro de actividad de scripts (Script Log)</a></h3>
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>
624 <h3><a name="rewritelog" id="rewritelog">Registro de actividad de Rewrite (Rewrite Log)</a></h3>
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>
635 <div class="bottomlang">
636 <p><span>Idiomas disponibles: </span><a href="./en/logs.html" hreflang="en" rel="alternate" title="English"> en </a> |
637 <a href="./es/logs.html" title="Español"> es </a> |
638 <a href="./ja/logs.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
639 <a href="./ko/logs.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
640 <a href="./tr/logs.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </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>