📄 logs.xml.es
字号:
<example> SetEnvIf Accept-Language "en" english<br /> CustomLog logs/english_log common env=english<br /> CustomLog logs/non_english_log common env=!english </example> <p>Aunque acabamos de mostar que el registro condicional es muy potente y flexible, no es la única manera de controlar los contenidos de los ficheros de registro. Los ficheros de registro son más útiles cuanta más información sobre la actividad del servidor contengan. A menudo es más fácil eliminar las peticiones que no le interesen procesando posteriormente los ficheros de registro originales.</p> </section> </section> <section id="rotation"> <title>Rotación de los ficheros de registro</title> <p>Incluso en un servidor con una actividad moderada, la cantidad de información almacenada en los ficheros de registro es muy grande. El registro de acceso crece normalmente en 1MB por cada 10.000 peticiones. Por lo tanto, es necesario rotar periódicamente los registros moviendo o borrando su contenido. Esto no se puede hacer con el servidor funcionando, porque Apache continuará escribiendo en el antiguo registro mientras que el archivo esté abierto. En lugar de esto, el servidor debe ser <a href="stopping.html">reiniciado</a> después de mover o borrar los ficheros de registro para que se abran nuevos ficheros de registro.</p> <p>Usando un reinicio <em>graceful</em>, se le puede indicar al servidor que abra nuevos ficheros de registro sin perder ninguna petición siendo servida o en espera de algún cliente. Sin embargo, para hacer esto, el servidor debe continuar escribiendo en los ficheros de registro antiguos mientras termina de servir esas peticiones. Por lo tanto, es preciso esperar algún tiempo después del reinicio antes de realizar ninguna operación sobre los antiguos ficheros de registro. Una situación típica que simplemente rota los registros y comprime los registros antiguos para ahorrar espacio es:</p> <example> 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 </example> <p>Otra manera de realizar la rotación de los registros es usando <a href="#piped">ficheros de registro redireccionados (piped logs)</a> de la forma en que se explica en la siguiente sección.</p> </section> <section id="piped"> <title>Ficheros de registro redireccionados (Piped Logs)</title> <p>Apache httpd es capaz de escribir la información del registro de acceso y errores mediante una redirección a otro proceso, en lugar de directamente a un fichero. Esta capacidad incrementa de forma muy importante la flexibilidad de registro, sin añadir código al servidor principal. Para escribir registros a una redirección, simplemente reemplace el nombre de fichero por el carácter "<code>|</code>", seguido por el nombre del ejecutable que debería aceptar las entradas de registro por su canal de entrada estándar. Apache iniciará el proceso de registro redireccionado cuando se inicie el servidor, y lo reiniciará si se produce algún error irrecuperable durante su ejecución. (Esta última funcionalidad es la que hace que se llame a esta técnica "registro redireccionado fiable".)</p> <p>Los procesos de registros son engendrados por el proceso padre de Apache httpd, y heredan el identificador de usuario de ese proceso. Esto significa que los programas a los que se redireccionan los registros se ejecutan normalmente como root. Es por ello que es muy importante que los programas sean simples y seguros.</p> <p>Un uso importante de los registros redireccionados es permitir la rotación de los registros sin tener que reiniciar el servidor. El servidor Apache HTTP incluye un programa simple llamado <program>rotatelogs</program> con este propósito. Por ejemplo para rotar los registros cada 24 horas, puede usar:</p> <example> CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common </example> <p>Tenga en cuenta que las comillas se usan para abarcar el comando entero que será invocado por la redirección. Aunque estos ejemplos son para el registro de acceso, la misma técnica se puede usar para el registro de errores.</p> <p>Otro programa para la rotación de los registros mucho más flexible llamado <a href="http://www.cronolog.org/">cronolog</a> está disponible en un sitio web externo.</p> <p>Como ocurre con el registro condicional, la redirección de registros es una herramienta muy potente, pero no deben ser usados si hay disponible una solución más simple de procesado posterior de los registros fuera de línea.</p> </section> <section id="virtualhost"> <title>Hosts Virtuales</title> <p>Cuando se está ejecutando un servidor con muchos <a href="vhosts/">hosts virtuales</a>, hay varias formas de abordar el asunto de los registros. Primero, es posible usar los registros de la misma manera que se usarían si hubiera solamente un host en el servidor. Simplemente poniendo las directivas que tienen que ver con los registros fuera de las secciones <directive module="core" type="section">VirtualHost</directive> en el contexto del servidor principal, puede almacenar toda la información de todas las peticiones en los mismos registros de acceso y errores. Esta técnica no permite una recolección fácil de las estadísticas individuales de cada uno de los hosts virtuales.</p> <p>Si una directiva <directive module="mod_log_config">CustomLog</directive> o <directive module="core">ErrorLog</directive> se pone dentro una sección <directive module="core" type="section">VirtualHost</directive>, todas las peticiones de ese host virtual se registrarán solamente en el fichero especificado. Las peticiones de cualquier host virtual que no tenga directivas de registro específicas para él se registrarán en los registros del servidor principal. Esta técnica es muy útil si usa un pequeño número de hosts virtuales, pero si usa un gran número de ellos, puede ser complicado de gestionar. Además, puede a menudo provocar problemas con <a href="vhosts/fd-limits.html"> descriptores de fichero insuficientes</a>.</p> <p>Para el registro de acceso, se puede llegar a un buen equilibrio. Añadiendo información del host virtual al formato de registro, es posible registrar las operaciones de todos los hosts en un único registro, y posteriormente dividir el fichero con todos los registros en ficheros individualizados. Por ejemplo, considere las siguientes directivas.</p> <example> LogFormat "%v %l %u %t \"%r\" %>s %b" comonvhost<br /> CustomLog logs/access_log comonvhost </example> <p>El <code>%v</code> se usa para registrar el nombre del host virtual que está sirviendo la petición. Puede usar un programa como <a href="programs/other.html">split-logfile</a> para procesar posteriormente el registro de acceso y dividirlo en ficheros independientes para cada host virtual.</p> </section> <section id="other"> <title>Otros ficheros de registro</title> <related> <modulelist> <module>mod_cgi</module> <module>mod_rewrite</module> </modulelist> <directivelist> <directive module="mpm_common">PidFile</directive> <directive module="mod_rewrite">RewriteLog</directive> <directive module="mod_rewrite">RewriteLogLevel</directive> <directive module="mod_cgi">ScriptLog</directive> <directive module="mod_cgi">ScriptLogBuffer</directive> <directive module="mod_cgi">ScriptLogLength</directive> </directivelist> </related> <section id="pidfile"> <title>Fichero PID (PID File)</title> <p>Al iniciar, Apache httpd guarda el identificador del proceso padre del servidor en el fichero <code>logs/httpd.pid</code>. Puede modificar el nombre de este fichero con la directiva <directive module="mpm_common">PidFile</directive>. El identificador del proceso puede usarlo el administrador para reiniciar y finalizar el demonio (daemon) mediante el envío de señales al proceso padre; en Windows, use la opción de línea de comandos -k en su lugar. Para más información al respecto, consulte la documentación sobre <a href="stopping.html">parar y reiniciar Apache</a>.</p> </section> <section id="scriptlog"> <title>Registro de actividad de scripts (Script Log)</title> <p>Para ayudar a la detección de errores, la directiva <directive module="mod_cgi">ScriptLog</directive> permite guardar la entrada y la salida de los scripts CGI. Esta directiva solamente debería usarla para hacer pruebas - no en servidores en producción. Puede encontrar más información al respecto en la documentación de <a href="mod/mod_cgi.html">mod_cgi</a>.</p> </section> <section id="rewritelog"> <title>Registro de actividad de Rewrite (Rewrite Log)</title> <p>Cuando use las potentes y complejas funcionalidades de <a href="mod/mod_rewrite.html">mod_rewrite</a>, será casi siempre necesario usar la direcitiva <directive module="mod_rewrite">RewriteLog</directive> para ayudar a la detección de errores. Este fichero de registro produce un análisis detallado de cómo actúa este módulo sobre las peticiones. El nivel de detalle del registro se controla con la directiva <directive module="mod_rewrite">RewriteLogLevel</directive>.</p> </section> </section></manualpage>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -