Java proporciona la capacidad de capturar los archivos de registro.
La necesidad de la captura de registros
Hay varias razones por las que podemos necesitar capturar la actividad de la aplicación.
- Registrar circunstancias inusuales o errores que puedan estar ocurriendo en el programa
- Obtener la información sobre lo que sucede en la aplicación
Los detalles que se pueden obtener de los registros pueden variar. A veces, es posible que deseemos muchos detalles sobre el problema o, a veces, solo información liviana.
Como cuando la aplicación está en desarrollo y se encuentra en fase de prueba, es posible que debamos capturar muchos detalles.
Niveles
de registro Los niveles de registro controlan los detalles de registro. Determinan la profundidad con la que se generan los archivos de registro. Cada nivel está asociado a un valor numérico y existen 7 niveles de registro básicos y 2 especiales.
Necesitamos especificar el nivel deseado de registro cada vez que buscamos interactuar con el sistema de registro. Los niveles básicos de registro son:
Nivel | Valor | Usado para |
---|---|---|
SEVERO | 1000 | Indica algún fallo grave |
ADVERTENCIA | 900 | Problema potencial |
INFORMACIÓN | 800 | Información general |
CONFIGURAR | 700 | Información de configuración |
MULTA | 500 | Información general del desarrollador |
MÁS FINO | 400 | Información detallada del desarrollador |
MEJOR | 300 | Información de desarrollador especializado |
Severo ocurre cuando ha ocurrido algo terrible y la aplicación no puede continuar. Ex como base de datos no disponible, sin memoria.
La advertencia puede ocurrir siempre que el usuario haya ingresado datos o credenciales incorrectas.
La información es para el uso de administradores o usuarios avanzados. Denota principalmente las acciones que han llevado a un cambio de estado de la aplicación.
La información de configuración puede ser como en qué CPU se ejecuta la aplicación, cuánto es el disco y el espacio de memoria.
Fine Finer y Finest proporcionan información de seguimiento. Cuando qué está pasando/ha pasado en nuestra aplicación.
FINE muestra los mensajes más importantes de estos.
FINER genera un mensaje de seguimiento detallado y puede incluir el registro de llamadas relacionadas con la entrada y salida del método y el lanzamiento de excepciones.
FINEST proporciona un mensaje de seguimiento muy detallado.
Además, hay dos niveles de registro especiales
APAGADO | Entero.MAX_VALUE | capturando nada |
TODOS | Entero.MIN_VALUE | capturando todo |
Capturar todo puede significar cada declaración de campo, definición, cada llamada de método, cada asignación realizada, etc.
Sistema de registro de Java El sistema de
registro se gestiona de forma centralizada. Solo hay un administrador de registro para toda la aplicación que administra tanto la configuración del sistema de registro como los objetos que realizan el registro real.
La clase Log Manager proporciona una única instancia global para interactuar con los archivos de registro. Tiene un método estático que se llama getLogManager
Clase
de registrador La clase de registrador proporciona métodos para el registro. Dado que LogManager es el que realiza el registro real, se accede a sus instancias mediante el método getLogger de LogManager.
Se accede a la instancia del registrador global a través del campo estático de la clase Logger GLOBAL_LOGGER_NAME. Se proporciona como una comodidad para hacer un uso ocasional del paquete de registro.
// Java program to illustrate logging in Java // The following code shows a basic example how logging // works in Java import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import java.util.logging.*; class DemoLogger { private final static Logger LOGGER = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME); // Get the Logger from the log manager which corresponds // to the given name <Logger.GLOBAL_LOGGER_NAME here> // static so that it is linked to the class and not to // a particular log instance because Log Manage is universal public void makeSomeLog() { // add some code of your choice here // Moving to the logging part now LOGGER.log(Level.INFO, "My first Log Message"); // A log of INFO level with the message "My First Log Message" } } public class GfG { public static void main(String[] args) { DemoLogger obj = new DemoLogger(); obj.makeSomeLog(); // Generating some log messages through the // function defined above LogManager lgmngr = LogManager.getLogManager(); // lgmngr now contains a reference to the log manager. Logger log = lgmngr.getLogger(Logger.GLOBAL_LOGGER_NAME); // Getting the global application level logger // from the Java Log Manager log.log(Level.INFO, "This is a log message"); // Create a log message to be displayed // The message has a level of Info } }
Producción;
May 12, 2018 7:56:33 AM DemoLogger makeSomeLog INFO: My first Log Message May 12, 2018 7:56:33 AM GfG main INFO: This is a log message