warn org loj4j logmanager logger found for example ejemplo could application appenders java logging log4j

java - loj4j - org/apache/logging/log4j/logmanager



Diferencia entre logger.info y logger.debug (6)

¿Cuál es la diferencia entre logger.debug y logger.info ?

¿Cuándo se imprimirá logger.debug ?


Básicamente depende de cómo estén configurados sus registradores. Por lo general, tendría una salida de depuración escrita durante el desarrollo, pero apagada en producción, o posiblemente haya seleccionado la escritura de categorías de depuración al depurar un área en particular.

El objetivo de tener diferentes prioridades es permitirle subir / bajar el nivel de detalle de un componente en particular de una manera razonablemente precisa, y solo necesita cambiar la configuración de registro (en lugar del código) para ver la diferencia.


Depende del nivel que seleccionó en su archivo de configuración log4j.

<Loggers> <Root level="info"> ...

Si su nivel es "información" (por defecto), logger.debug(...) no se imprimirá en su consola. Sin embargo, si su nivel es "depurar", lo hará.

Dependiendo del nivel de criticidad de su código, debe usar el nivel más preciso entre los siguientes:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF


Esto dependerá de la configuración de registro. El valor predeterminado dependerá del marco que se use. La idea es que más adelante al cambiar una configuración de INFO a DEPURAR, verá una tonelada de más (o menos si a la inversa) líneas impresas sin volver a compilar toda la aplicación.

Si piensas cuál usar, todo se reduce a pensar qué quieres ver en qué nivel. Para otros niveles, por ejemplo, en Log4J, consulte la API, http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html


Solo una aclaración sobre el conjunto de todos los niveles posibles, que son:

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF


Sugiero que mires el artículo llamado "Introducción corta a log4j" . Contiene una breve explicación de los niveles de registro y demuestra cómo se pueden usar en la práctica. La idea básica de los niveles de registro es que desea poder configurar la cantidad de detalles que contienen los registros dependiendo de la situación. Por ejemplo, si está intentando solucionar un problema, querrá que los registros sean muy detallados. En producción, es posible que solo desee ver advertencias y errores.

El nivel de registro para cada componente de su sistema generalmente se controla mediante un parámetro en un archivo de configuración, por lo que es fácil de modificar. Su código contendría varias declaraciones de registro con diferentes niveles. Al responder a una Exception , puede llamar a Logger.error . Si desea imprimir el valor de una variable en cualquier punto dado, puede llamar a Logger.debug . Esta combinación de un nivel de registro configurable y declaraciones de registro dentro de su programa le permite un control total sobre cómo su aplicación registrará su actividad.

En el caso de log4j al menos, el orden de los niveles de registro es:

DEBUG < INFO < WARN < ERROR < FATAL

Aquí hay un pequeño ejemplo de ese artículo que demuestra cómo funcionan los niveles de registro.

// get a logger instance named "com.foo" Logger logger = Logger.getLogger("com.foo"); // Now set its level. Normally you do not need to set the // level of a logger programmatically. This is usually done // in configuration files. logger.setLevel(Level.INFO); Logger barlogger = Logger.getLogger("com.foo.Bar"); // This request is enabled, because WARN >= INFO. logger.warn("Low fuel level."); // This request is disabled, because DEBUG < INFO. logger.debug("Starting search for nearest gas station."); // The logger instance barlogger, named "com.foo.Bar", // will inherit its level from the logger named // "com.foo" Thus, the following request is enabled // because INFO >= INFO. barlogger.info("Located nearest gas station."); // This request is disabled, because DEBUG < INFO. barlogger.debug("Exiting gas station search");


¿Cuál es la diferencia entre logger.debug y logger.info?

Estos son solo algunos niveles predeterminados ya definidos. Puede definir sus propios niveles si lo desea. El propósito de esos niveles es habilitar / deshabilitar uno o más de ellos, sin hacer ningún cambio en su código.

¿Cuándo se imprimirá logger.debug?

Cuando haya habilitado la depuración o un nivel superior en su configuración.