log4j - Niveles de registro
los org.apache.log4j.Levelniveles. También puede definir sus niveles personalizados subclasificando elLevel clase.
Nivel | Descripción |
---|---|
TODAS | Todos los niveles, incluidos los niveles personalizados. |
DEPURAR | Designa eventos informativos detallados que son más útiles para depurar una aplicación. |
INFO | Designa mensajes informativos que destacan el progreso de la aplicación a un nivel más detallado. |
ADVERTIR | Designa situaciones potencialmente dañinas. |
ERROR | Designa eventos de error que aún pueden permitir que la aplicación continúe ejecutándose. |
FATAL | Designa eventos de error muy graves que presumiblemente harán que la aplicación se anule. |
APAGADO | El rango más alto posible y está destinado a desactivar el registro. |
RASTRO | Designa eventos informativos más detallados que el DEBUG. |
¿Cómo funcionan los niveles?
Una solicitud de registro de nivel p en un registrador con nivel q es enabledsi p> = q. Esta regla está en el corazón de log4j. Asume que los niveles están ordenados. Para los niveles estándar, tenemos TODOS <DEBUG <INFO <WARN <ERROR <FATAL <OFF.
El siguiente ejemplo muestra cómo podemos filtrar todos nuestros mensajes DEBUG e INFO. Este programa utiliza el método de registro setLevel (Level.X) para establecer un nivel de registro deseado:
Este ejemplo imprimiría todos los mensajes excepto Debug e Info:
import org.apache.log4j.*;
public class LogClass {
private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
public static void main(String[] args) {
log.setLevel(Level.WARN);
log.trace("Trace Message!");
log.debug("Debug Message!");
log.info("Info Message!");
log.warn("Warn Message!");
log.error("Error Message!");
log.fatal("Fatal Message!");
}
}
Cuando compila y ejecuta el LogClass programa, generaría el siguiente resultado:
Warn Message!
Error Message!
Fatal Message!
Establecer niveles mediante el archivo de configuración
log4j le proporciona una configuración de nivel basada en archivos de configuración que lo libera de cambiar el código fuente cuando desea cambiar el nivel de depuración.
A continuación se muestra un archivo de configuración de ejemplo que realizaría la misma tarea que hicimos con el log.setLevel(Level.WARN) método en el ejemplo anterior.
# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = WARN, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Usemos ahora nuestro siguiente programa:
import org.apache.log4j.*;
public class LogClass {
private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
public static void main(String[] args) {
log.trace("Trace Message!");
log.debug("Debug Message!");
log.info("Info Message!");
log.warn("Warn Message!");
log.error("Error Message!");
log.fatal("Fatal Message!");
}
}
Ahora compile y ejecute el programa anterior y obtendrá el siguiente resultado en /usr/home/log4j/log.out archivo -
Warn Message!
Error Message!
Fatal Message!