1. Información general
En este tutorial rápido, mostraremos cómo registrar excepciones en Java usando la API SLF4J. Usaremos la API slf4j-simple como implementación de registro.
Puede explorar diferentes técnicas de registro en uno de nuestros artículos anteriores.
2. Dependencias de Maven
Primero, necesitamos agregar las siguientes dependencias a nuestro pom.xml :
org.slf4j slf4j-api 1.7.30 org.slf4j slf4j-simple 1.7.30
Las últimas versiones de estas bibliotecas se pueden encontrar en Maven Central.
3. Ejemplos
Por lo general, todas las excepciones se registran utilizando el método error () disponible en la clase Logger . Hay bastantes variaciones de este método. Vamos a explorar:
void error(String msg); void error(String format, Object... arguments); void error(String msg, Throwable t);
Primero inicialicemos el Logger que vamos a usar:
Logger logger = LoggerFactory.getLogger(NameOfTheClass.class);
Si solo tenemos que mostrar el mensaje de error, simplemente podemos agregar:
logger.error("An exception occurred!");
La salida del código anterior será:
ERROR packageName.NameOfTheClass - An exception occurred!
Esto es bastante simple. Pero para agregar información más relevante sobre la excepción (incluido el seguimiento de la pila) podemos escribir:
logger.error("An exception occurred!", new Exception("Custom exception"));
La salida será:
ERROR packageName.NameOfTheClass - An exception occurred! java.lang.Exception: Custom exception at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)
En presencia de múltiples parámetros, si el último argumento en una declaración de registro es una excepción, entonces SLF4J presumirá que el usuario quiere que el último argumento sea tratado como una excepción en lugar de un parámetro simple:
logger.error("{}, {}! An exception occurred!", "Hello", "World", new Exception("Custom exception"));
En el fragmento anterior, el mensaje String se formateará en función de los detalles del objeto pasado. Hemos utilizado llaves como marcadores de posición para los parámetros String pasados al método.
En este caso, la salida será:
ERROR packageName.NameOfTheClass - Hello, World! An exception occurred! java.lang.Exception: Custom exception at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)
4. Conclusión
En este tutorial rápido, descubrimos cómo registrar excepciones usando la API SLF4J.
Los fragmentos de código están disponibles en el repositorio de GitHub.