¿Cuál es la diferencia entre logger.debug
y logger.info
?
¿Cuándo se logger.debug
imprimirá?
Esto dependerá de la configuración de registro. El valor predeterminado dependerá del marco que se utilice. La idea es que más adelante, al cambiar un ajuste de configuración de INFO a DEBUG, verá una tonelada de más (o menos, si es al revés) líneas impresas sin volver a compilar toda la aplicación.
Si piensa cuál usar, entonces se reduce a pensar qué quiere ver en qué nivel. Para otros niveles, por ejemplo, en Log4J, mire la API, http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html
Le sugiero que consulte el artículo llamado "Breve introducción a log4j". . Contiene una breve explicación de los niveles de registro y demuestra cómo se pueden utilizar 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 según 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 a través de un parámetro en un archivo de configuración, por lo que es fácil de cambiar. Su código contendría varias declaraciones de registro con diferentes niveles. Al responder a un Exception
, puede llamar Logger.error
. Si desea imprimir el valor de una variable en cualquier punto dado, puede llamar 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 breve 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");
Trace
nivel de registro es.If you want to print the value of a variable at any given point, you might call Logger.debug
me ayudó a aclarar la confusión que tenía entreDebug
yTrace
nivel. ¡Gracias!Solo una aclaración sobre el conjunto de todos los niveles posibles, que son:
fuente
Básicamente, depende de cómo estén configurados sus registradores. Por lo general, tendría la salida de depuración escrita durante el desarrollo pero desactivada en producción, o posiblemente haya seleccionado categorías de depuración escritas mientras depura un área en particular.
El punto de tener diferentes prioridades es permitirle subir / bajar el nivel de detalle en un componente en particular de una manera razonablemente detallada, y solo necesita cambiar la configuración de registro (en lugar del código) para ver la diferencia.
fuente
Esta es una pregunta muy antigua, pero no veo mi comprensión aquí, así que agregaré mis 2 centavos:
Cada nivel corresponde / mapea a un tipo de usuario:
fuente
fuente
¿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 realizar ningún cambio en su código.
¿Cuándo se imprimirá logger.debug?
Cuando haya habilitado la depuración o cualquier nivel superior en su configuración.
fuente
Depende del nivel que haya seleccionado en su archivo de configuración log4j.
<Loggers> <Root level="info"> ...
Si su nivel es "info" (por defecto),
logger.debug(...)
no se imprimirá en su consola. Sin embargo, si su nivel es "depuración", lo hará.Dependiendo del nivel de criticidad de su código, debe usar el nivel más preciso entre los siguientes:
fuente