2010-02-26 16 views

Respuesta

18

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 entonces todo se reduce a pensar qué quieres 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

6

Básicamente depende de cómo estén configurados los registradores. Por lo general, tendría una salida de depuración escrita durante el desarrollo, pero apagada en producción, o posiblemente tenga categorías de depuración seleccionadas escribiendo mientras se depura 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.

100

Le sugiero que consulte el artículo llamado "Short Introduction to 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 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. Cuando responda a un Exception, puede llamar al Logger.error. Si desea imprimir el valor de una variable en cualquier punto dado, puede llamar al 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í es un breve ejemplo de ese artículo que muestra 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"); 
+0

Dónde se traza? – momomo

+0

@momomo es posible que desee comprobar [this] (http://stackoverflow.com/a/5278006/465053) responder para saber qué nivel de registro 'Trace' es. – RBT

+0

Su ejemplo 'Si desea imprimir el valor de una variable en cualquier punto dado, puede llamar a Logger.debug' para ayudarme a aclarar la confusión que tuve entre' Debug' y 'Trace' level. ¡Gracias! – RBT

0

¿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.

7

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

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

Depende del nivel seleccionado en el archivo de configuración de log4j.

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

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

Dependiendo del nivel de criticidad de su código, se debe utilizar el nivel más precisa entre los siguientes:

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