¿Es posible crear un registro de errores personalizado en Apache 2.2?

11

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?

JohnT
fuente
Dependiendo de su configuración, puede tener un ErrorLog para cada uno de sus hosts virtuales. No es lo mismo que un archivo de registro analizable unificado, pero es algo.
muffinista

Respuestas:

7

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, LogFormatpero 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.

uesp
fuente
6

Con Apache 2.4 puedes usar la ErrorLogFormatdirectiva.

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

nulo
fuente
¿Alguien puede adivinar por %aqué aparecería en blanco? Se supone que es la dirección IP del cliente. Yo publicado una pregunta sobre eso.
Bob Stein
1

Probablemente estés buscando mod_log_debug .

Piotr Kieszczyński
fuente
Si bien tiene razón, sería preferible incluir las partes esenciales de la respuesta en el enlace aquí, en caso de que el enlace se cierre o se mueva.
HopelessN00b