logging - reading - docker log syslog
¿Es posible especificar un formato de registro de error personalizado en nginx? (3)
Hay un hack para eso.
Sabemos que podemos personalizar el formato de registro de acceso pero no el formato de registro de errores. Entonces, el truco es que, para un registro de errores personalizado, generamos un registro de acceso solo cuando ocurre un error.
Esto se puede hacer usando la directiva error_page.
http {
...
log_format custom_combined "...";
server {
...
error_page 50x @create_custom_error50x;
...
location @create_custom_error50x {
access_log path custom_combined;
return 50x;
}
}
}
Puedo especificar un formato de registro personalizado para el registro de acceso en nginx, pero no funcionará para el registro de errores. Ojalá siempre viera el momento en que se produce el error. ¿Es posible?
No puede especificar su propio formato, pero en nginx integrado en varios niveles de error_log-ing.
Sintaxis: error_log file [ debug | info | notice | warn | error | crit ]
error_log file [ debug | info | notice | warn | error | crit ]
Predeterminado: ${prefix}/logs/error.log
Especifica el archivo donde se registran los errores del servidor (y fastcgi).
Valores por defecto para el nivel de error:
- en la sección principal - error
- en la sección HTTP - crit
- en la sección de servidor - crit
En mi error_log, el tiempo siempre se presenta en el inicio de cada cadena de error en el registro.
Un truco sucio que usé cuando quise cambiar el formato del registro de errores nginx (en este caso cuando envié mis propios registros con el método ngx.log de ngx.log
de Lua) fue prefijar mi propio mensaje de registro con suficientes caracteres /b
(retroceso) para eliminar toda la información que no estaba interesado en ver cuando ejecutaba un tail -f error.log
.