orden de jerarquía de registro log4j

170

¿Cuál es la jerarquía del registro log4j?

DEBUG
INFO
WARN
ERROR
FATAL

¿Cuál proporciona el registro más alto que sería útil para solucionar problemas? ¿Puede alguien proporcionar el orden o la jerarquía en la que se realiza el registro de mayor a menor? ¡Gracias!

Miguel
fuente

Respuestas:

293

Esta tabla puede ser útil para usted:

Nivel de registro

Al bajar la primera columna, verá cómo funciona el registro en cada nivel. es decir, para WARN , ( FATAL, ERROR y WARN ) serán visibles. Para APAGADO , nada será visible.

nxhoaf
fuente
Los términos visibilidad y elemento no se explican por sí mismos. Veo que la documentación oficial también es vaga al respecto. El método de salida tales como error, info, debug, etc. de los cesionarios del registrador de un nivel de prioridad / gravedad al mensaje de registro. Si el registro realmente surte efecto (el mensaje será visible) depende del nivel de registro efectivo del registrador que se esté utilizando.
Wolf
1
Enlace roto. por favor arregle o elimine
yurin
Aunque esto responde a la pregunta (es solo pedir el "orden jerárquico"), finalmente rechacé su mala terminología: bajando , la "visibilidad" funciona , elemento . ¿No desea explicar cómo la configuración del registrador afecta el registro real (pasando eventos de registro)? Por favor considere otra actualización. Por cierto: la tabla en la documentación oficial (al final de la sección) difiere en el tratamiento OFFy ALL, bueno, después de leer algunas de las fuentes (no encontrar casos especiales) dudo que su tabla sea correcta.
Wolf
Gracias Wolf, he actualizado la respuesta de acuerdo a tus comentarios.
nxhoaf
2
Creo que esta es una excelente visualización de los niveles de registro y los tipos de mensajes de registro esperados que se generarían para una configuración de nivel de registrador específico. Mi única sugerencia podría ser tener colores de fila alternos para guiar al espectador de que el gráfico debe ser interpretado por fila en lugar de columna. (es decir, las filas representan los niveles del registrador y las columnas representan los tipos de mensajes de registro que estarían presentes)
Larry Hector
149

Usar la fuerza, leer la fuente (extracto de la Priorityy la Levelclase compilada, a nivel de trazas se introdujo en la versión 1.2.12):

public final static int OFF_INT = Integer.MAX_VALUE;
public final static int FATAL_INT = 50000;
public final static int ERROR_INT = 40000;
public final static int WARN_INT  = 30000;
public final static int INFO_INT  = 20000;
public final static int DEBUG_INT = 10000;
public static final int TRACE_INT = 5000; 
public final static int ALL_INT = Integer.MIN_VALUE; 

o la API log4j para la Levelclase , lo que lo deja bastante claro.

Cuando la biblioteca decide si imprimir una determinada declaración o no, calcula el nivel efectivo del Loggerobjeto responsable (en función de la configuración) y lo compara con el LogEventnivel de (depende del método utilizado en el código: trace / debug / ... / fatal ). Si LogEventel nivel es mayor o igual que el Loggernivel, LogEventse envía a los apéndices: "impreso". En el fondo, todo se reduce a una comparación entera y aquí es donde estas constantes entran en acción.

MaDa
fuente
56
OFF
FATAL
ERROR
WARN
INFO
DEBUG
TRACE
ALL
the.malkolm
fuente
1
Esto está en conflicto con la información proporcionada en tutorialspoint.com/log4j/log4j_logging_levels.htm ¿Cuál es la verdad?
Mike
1
verifique el código donde están las variables enteras para la prueba docjar.com/html/api/org/apache/log4j/Level.java.html
the.malkolm
44
en su enlace dijo que "TODOS <DEPURACIÓN <INFORMACIÓN <ADVERTENCIA <ERROR <FATAL <APAGADO" y es exactamente lo mismo que dije
the.malkolm
66
Diagrama de Venn OFF () ALL (TRACE (DEBUG (INFO (WARN (ERROR (FATAL)))))))
Hernán Eche
@Mike en log4j Los niveles de registro usan orden alfabético en la primera tabla . Excepto por los desaparecidos trace, más tarde afirman correctamente que ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF(en donde <significa menos importante)
Wolf
24

La jerarquía de los niveles de registro de log4j es la siguiente en orden de mayor a menor:

  • RASTRO
  • DEPURAR
  • INFORMACIÓN
  • ADVERTIR
  • ERROR
  • FATAL
  • APAGADO

El nivel de registro TRACE proporciona el registro más alto, lo que sería útil para solucionar problemas. El nivel de registro de DEPURACIÓN también es muy útil para solucionar los problemas.

También puede consultar este enlace para obtener más información sobre los niveles de registro: https://logging.apache.org/log4j/2.0/manual/architecture.html

Pathik Mehta
fuente
12

[Tomado de http://javarevisited.blogspot.com/2011/05/top-10-tips-on-logging-in-java.html]

DEBUG es el nivel de registro de Java restringido más bajo y debemos escribir todo lo que necesitamos para depurar una aplicación, este modo de registro de Java solo debe usarse en el entorno de Desarrollo y Pruebas y no debe usarse en el entorno de producción.

INFO está más restringido que el nivel de registro DEBUG de Java y deberíamos registrar mensajes con fines informativos como Servidor iniciado, Mensajes entrantes, mensajes salientes, etc. en el registro de nivel INFO en Java.

WARN es más restringido que el nivel de registro INFO java y se utiliza para registrar mensajes de advertencia, por ejemplo, la conexión perdida entre el cliente y el servidor. Conexión de base de datos perdida, Socket llegando a su límite. Estos mensajes y el nivel de registro de Java son casi importantes porque puede configurar alertas en estos mensajes de registro en Java y dejar que su equipo de soporte monitoree el estado de su aplicación Java y reaccione ante estos mensajes de advertencia. En resumen, el nivel WARN se utiliza para registrar mensajes de advertencia para iniciar sesión en Java.

ERROR es el nivel de registro de Java más restringido que WARN y se utiliza para registrar errores y excepciones, también puede configurar la alerta en este nivel de registro de Java y el equipo de monitoreo de alertas para reaccionar ante estos mensajes. ERROR es grave para iniciar sesión en Java y siempre debe imprimirlo.

El nivel de registro FATAL de Java designa eventos de error muy graves que presumiblemente llevarán a la aplicación a abortar. Después de esto, su aplicación se bloquea y se detiene.

El nivel de registro de Java desactivado tiene el rango más alto posible y está destinado a desactivar el registro en Java.

chocolatecastle
fuente
4

Orden de la jerarquía

  1. TODAS
  2. RASTRO
  3. DEPURAR
  4. INFORMACIÓN
  5. ADVERTIR
  6. ERROR
  7. FATAL
  8. APAGADO
Sarath
fuente