Los niveles de registro se utilizan para categorizar las entradas en su archivo de registro. Pero categorizan de una manera muy específica, es decir, por urgencia. El nivel le permite separar los siguientes tipos de información:
- Puede filtrar sus archivos de registro durante la búsqueda.
- Puede administrar la cantidad de información que registra.
La cantidad y el tipo de información proporcionada en el sistema y los registros de eventos se controlan mediante la configuración del nivel log4j en el archivo de configuración. Cada mensaje de registro tiene como prefijo el nivel del mensaje.
Los niveles de registro son una instancia de org.apache.log4j.Level clase.
Log4j tiene los siguientes niveles de registro:
Nivel de registro | Descripción |
---|---|
TODO | Este nivel activa todos los niveles de registro. Incluye los niveles de registro personalizados que ha definido. Una vez que este esté configurado y los niveles no se consideren en absoluto, todos los agregados comenzarán a verter los eventos de registro en archivos de registro. |
DEPURAR | La depuración se usa mucho para depurar la aplicación en el momento del desarrollo. Cada mensaje de registro aparecerá en los archivos de registro una vez que se establezca este nivel. Básicamente pertenece a los desarrolladores. |
INFORMACIÓN | El nivel de registro INFO se utiliza para registrar mensajes sobre el funcionamiento rutinario de la aplicación. En tiempo real, los administradores del sistema observan los registros de información para asegurarse de lo que está sucediendo en el sistema en este momento y si hay algún problema en el flujo normal. |
ADVERTIR | El nivel de registro WARN se utiliza para indicar que podría tener un problema y que ha detectado una situación inusual. Tal vez estaba exigiendo invocar un servicio y falló un par de veces antes de conectarse en un reintento automático. Es inesperado e inusual, pero no se produjo ningún daño real y no se sabe si el problema persistirá o se repetirá. Alguien debería investigar las advertencias. |
ERROR | El nivel de registro de ERROR se utiliza para indicar un problema grave que debe investigarse de inmediato. No es tan grave como FATAL, pero sigue siendo un problema. Simplemente significa que su aplicación ha alcanzado un estado realmente no deseado. Por ejemplo, entrada formateada inesperada, falta de disponibilidad de la base de datos. |
FATAL | El nivel de registro FATAL, al igual que ERROR, designa un problema. Pero a diferencia de ERROR, designa un evento de error muy grave. No considerarás mucho su presencia en un día normal, pero una vez que aparecen, indica muy malas noticias, incluso la aplicación de la muerte. |
APAGADO | Este es el rango más alto posible y está destinado a desactivar el registro. |
RASTRO | Esto se introdujo recientemente en la versión 1.2 e incluye más información para depurar registros de nivel. |
¿Cómo configurar los niveles de registro?
Establecer el nivel de registro en log4j.properties
log4j.rootLogger=DEBUG, consoleAppender log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n #Log info messages for package 'com.javatpoint.web.controller' log4j.logger.com.javatpoint.web.controller=INFO, consoleAppender
Establecer el nivel de registro en log4j.xml
¿Cómo funcionan los niveles de registro?
El funcionamiento de los niveles de registro es realmente muy sencillo. Durante el tiempo de ejecución, el código de la aplicación creará solicitudes de registro, que tendrán un nivel. Al mismo tiempo, el marco de registro tiene configurado un nivel de registro, que actúa como umbral. Si el nivel de solicitud está en el nivel configurado o en un nivel superior, se registra en el destino configurado. Si no, se niega. Es así de simple.
Consideremos eso como el siguiente orden de clasificación para los niveles:
ALL <trace < debug info warn error fatal off pre> <p>So if, for instance, the logging framework level is set to WARN, requests with any of the levels WARN, FATAL, and ERROR will be accepted, while the rest will be denied.</p> <img src="//techcodeview.com/img/log4j-tutorial/51/log4j-logging-levels.webp" alt="Log4J Logging Levels"> <p>In the above diagram, the vertical header displays the Level of the LogEvent, while the horizontal header shows the Level associated with the appropriate logging configuration.</p> <p>For the first column, you will see how the log works in each level. For example, for WARN, (FATAL, ERROR, and WARN) will be visible. For OFF, nothing will be visible.</p> <h3>Log4j Level Example</h3> <p> <strong>Configuration File:</strong> </p> <pre> # 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 </pre> <p> <strong>Java Program:</strong> </p> <pre> 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!'); } } </pre> <p>Now compile and run the above program and we would get the following output in c:/usr/home/log4j/log.out file:</p> <pre> Warn Message! Error Message! Fatal Message! </pre> <hr></trace>
Programa Java:
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 compila y ejecuta el programa anterior y obtendremos el siguiente resultado en el archivo c:/usr/home/log4j/log.out:
Warn Message! Error Message! Fatal Message!