Me gustaría anteponer el nombre de vhost en mi ErrorLog y luego canalizarlo en un programa que escribí.
¿Es posible escribir el formato de registro de error personalizado como está con el registro de acceso?
Me gustaría anteponer el nombre de vhost en mi ErrorLog y luego canalizarlo en un programa que escribí.
¿Es posible escribir el formato de registro de error personalizado como está con el registro de acceso?
Respuestas:
Para las tuberías, consulte la directiva ErrorLog y las entradas del manual oficial de Piped Logs que lo explican bastante bien.
Obtener un formato de registro de errores personalizado es más difícil. Puede personalizar el registro de acceso fácilmente, LogFormat
pero no hay nada integrado para modificar el formato del registro de errores. Me encontré con CGI :: Carp, que es un módulo de Perl para enviar al registro de errores. Finalmente, siempre se modifica el código fuente de Apache directamente, dependiendo de qué tan mal desee esta función.
En Apache 2.2 no puede cambiar el formato de error_log fácilmente; consulte http://httpd.apache.org/docs/2.2/logs.html#errorlog .
Apache 2.4 agrega este soporte. Ver http://httpd.apache.org/docs/2.4/logs.html#errorlog .
Con Apache 2.4 puedes usar la ErrorLogFormat
directiva.
Sintaxis: ErrorLogFormat [connection|request] format
Ejemplo simple
ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
Ejemplo (formato predeterminado para MPMs roscados)
ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
Ejemplo (similar al formato 2.2.x)
ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
Ejemplo avanzado con ID de registro de solicitud / conexión
ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"
Fuente: Directiva ErrorLogFormat
%a
qué aparecería en blanco? Se supone que es la dirección IP del cliente. Yo publicado una pregunta sobre eso.
Probablemente estés buscando mod_log_debug .