Utilizar un Logger en Java
En el lenguaje de programación Java, Logging
es una API que permite a los usuarios rastrear el error generado por las clases específicas. Un registrador ayuda en el mecanismo de registro en tiempo real agregando marcas de tiempo y los puntos finales donde se llena. La API ayuda a mantener el seguimiento de eventos como un registro de un registro. Los registros ayudan a localizar la causa raíz de los problemas que ocurrieron y regeneran el mismo evento más tarde.
Este artículo le muestra un método para utilizar mejor los registros de Java.
Las funciones de un registrador en Java
El registrador y su función se muestran en el programa siguiente.
package log_file;
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
public class AddLoggerInFile {
public static void main(String[] args) {
Logger logger = Logger.getLogger("MyLog");
FileHandler fileHandler;
try {
fileHandler = new FileHandler("src/main/resources/MyLogFile.txt");
logger.addHandler(fileHandler);
SimpleFormatter simpleFormatter = new SimpleFormatter();
fileHandler.setFormatter(simpleFormatter);
logger.info("Log to test");
} catch (SecurityException e) {
logger.info("Exception:" + e.getMessage());
e.printStackTrace();
} catch (IOException e) {
logger.info("IO Exception:" + e.getMessage());
e.printStackTrace();
}
logger.info("Hi In the main class");
}
}
En el bloque de código anterior, se crea una instancia de un registrador inicialmente.
La clase está presente en el paquete java.util.logging
. El getLogger
es un método estático presente en la clase Logger
que crea un registrador si no está presente en el sistema con el nombre dado. La función else
devuelve la instancia del registrador existente si ya está presente.
La función arroja NullPointerException
si el nombre dado es el valor nulo. Una vez que se crea una instancia de la instancia del registrador, se crea una instancia del controlador de archivos.
La clase FileHandler
está presente en el paquete java.util.logging
y se diseña y configura específicamente para manejar el registro impreso usando la instancia de logger
. El constructor FileHandler
inicializa el controlador para escribir la información en el nombre de archivo dado. El constructor toma el nombre del archivo de salida como parámetro.
En el código anterior, se proporciona una ruta relativa con el nombre del archivo. El tamaño no está definido en el archivo, ya que puede extenderse hasta el límite de los registros. El constructor lanza IOException
cuando el compilador enfrenta un problema al abrir los archivos. Lanza SecurityException
si un administrador de seguridad no tiene LoggingPermission
y IllegalArgumentException
si el patrón es una cadena vacía.
El método addHandler
asigna un controlador de archivos para recibir los mensajes de registro en el archivo. La función es del tipo de retorno void
, ya que no devuelve ningún valor. En cambio, solo consume los registros y eventos. Lanza SecurityException
si un administrador de seguridad no tiene suficientes permisos de registro.
Se inicia la instancia de SimpleFormatter
; la clase también está presente en el paquete java.util.logging
. El formateador permite el privilegio de autoformatear los registros usando la propiedad logging.SimpleFormatter.format
. Esta propiedad permite que los mensajes de registro estén en un formato definido y, por lo tanto, mantengan la uniformidad.
El setFormatter
es una función que establece un formateador en la instancia del registrador. La info
es una función presente en la clase Logger
para imprimir los mensajes de registro INFO
en el archivo. Puede haber varios niveles de registro
presentes en la clase Nivel. Según el uso, podemos utilizar los registros INFO
, DEBUG
, FINE
, CONFIG
y SEVERE
.
Los niveles de registro
son los detalles de registro que definen la gravedad del registro del programa. Los niveles tienen un número definido y un significado específico. Por ejemplo, SEVERE
tiene un valor logarítmico de 1000
, y denota la falla en el sistema y debe ser atendido de inmediato.
La gravedad se produce cuando se pierde alguna falla en la red o se pierde la conectividad de la base de datos. Del mismo modo, el nivel WARNING
tiene un valor de 900
y denota el riesgo potencial en el sistema.
A continuación se muestra la salida que se completa en la salida de la consola estándar y el archivo MyLogFile.txt
.
Producción :
Jul 04, 2021 12:05:29 AM log_file.AddLoggerInFile main
INFO: Log to test
Jul 04, 2021 12:05:29 AM log_file.AddLoggerInFile main
INFO: Hi In the main class
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn