Registrazione delle eccezioni tramite SLF4J

1. Panoramica

In questo breve tutorial, mostreremo come registrare le eccezioni in Java utilizzando l'API SLF4J. Useremo l' API slf4j-simple come implementazione del logging.

Puoi esplorare diverse tecniche di registrazione in uno dei nostri articoli precedenti.

2. Dipendenze di Maven

Innanzitutto, dobbiamo aggiungere le seguenti dipendenze al nostro pom.xml :

 org.slf4j slf4j-api 1.7.30   org.slf4j slf4j-simple 1.7.30 

Le ultime versioni di queste librerie possono essere trovate su Maven Central.

3. Esempi

Di solito, tutte le eccezioni vengono registrate utilizzando il metodo error () disponibile nella classe Logger . Esistono alcune varianti di questo metodo. Stiamo per esplorare:

void error(String msg); void error(String format, Object... arguments); void error(String msg, Throwable t);

Inizializziamo prima il Logger che useremo:

Logger logger = LoggerFactory.getLogger(NameOfTheClass.class);

Se dobbiamo solo mostrare il messaggio di errore, possiamo semplicemente aggiungere:

logger.error("An exception occurred!");

L'output del codice precedente sarà:

ERROR packageName.NameOfTheClass - An exception occurred!

Questo è abbastanza semplice. Ma per aggiungere informazioni più rilevanti sull'eccezione (inclusa la traccia dello stack) possiamo scrivere:

logger.error("An exception occurred!", new Exception("Custom exception"));

L'output sarà:

ERROR packageName.NameOfTheClass - An exception occurred! java.lang.Exception: Custom exception at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)

In presenza di più parametri, se l'ultimo argomento in un'istruzione di registrazione è un'eccezione, SLF4J presumerà che l'utente desideri che l'ultimo argomento sia trattato come un'eccezione invece di un semplice parametro:

logger.error("{}, {}! An exception occurred!", "Hello", "World", new Exception("Custom exception"));

Nello snippet precedente, il messaggio String verrà formattato in base ai dettagli dell'oggetto passato. Abbiamo utilizzato le parentesi graffe come segnaposto per i parametri String passati al metodo.

In questo caso, l'output sarà:

ERROR packageName.NameOfTheClass - Hello, World! An exception occurred! java.lang.Exception: Custom exception at packageName.NameOfTheClass.methodName(NameOfTheClass.java:lineNo)

4. Conclusione

In questo breve tutorial, abbiamo scoperto come registrare le eccezioni utilizzando l'API SLF4J.

Gli snippet di codice sono disponibili nel repository GitHub.