No quiero reinventar la rueda, así que me pregunto si algún sistema de registro ya admite algo así como lo que estoy proponiendo.log4j -adaptive log level- feature
Antecedentes: Estoy trabajando en un sistema extremadamente grande donde decenas de miles de usuarios acceden a los servidores en un momento dado. Hay muchas infraestructuras circundantes involucradas, por lo que puede imaginarse cómo se investigan los errores que ocurren con tan solo leer los registros en dicho ecosistema.
Nuestro sistema utiliza log4j.
La raíz principal del problema era que los implementadores originales eran bastante 'económicos', para decirlo suavemente, cuando se encontraba con un error desconocido. Claro, el nivel de DEPURACIÓN sería útil en la mayoría de los casos, pero por supuesto, los registros de producción están configurados en el nivel de ERROR solamente :(
Ahora intento hacer un mundo mejor para nuestros hijos y quiero expandir el sistema de registro a ser más 'benignos' sobre el nivel de registro
lo que tengo en mente es la siguiente:.
Dado que los registros de nivel de depuración de los alrededores (N antes y M después de que el registro de errores) podría contener datos importantes, ¿por qué no baje el nivel de registro del sistema alrededor del ERROR.
Mi idea:
- asumamos conjunto de nivel de registro de errores para el sistema
- uso algún tipo de búfer de registro de vuelco de tamaño X. Cada registro va allí y se reenvía a log4j.
- Cuando tampón consigue registrar un error que puede también salida el contexto de n mensajes siguiente de registro anteriores y M por cualquiera de
- aumentar artificialmente el nivel de registro de error de estado (y observando que, por supuesto) o
- simplemente ingrese ese contexto a través de un ERROR inyectada ingrese
Hay algunos problemas para trabajar fuera, pero, en general, que podría funcionar.
¿Alguna idea?
Saludos
Disculpe, no me di cuenta de que BufferingForwardingAppender era realmente para log4net y no log4j. No se puede ubicar la versión de Java, pero quizás trasladar la versión .net es bastante fácil. –
Dio +1 porque interpretó correctamente la idea :) – humbleSapiens