Exceções de log usando SLF4J

Exceções de log usando SLF4J

1. Visão geral

Neste tutorial rápido, mostraremos como registrar exceções em Java usando a APISLF4J. Usaremos a APIslf4j-simple como a implementação de registro.

Você pode explorar diferentes técnicas de registro em um de nossosprevious articles.

2. Dependências do Maven

Primeiro, precisamos adicionar as seguintes dependências ao nossopom.xml:


    org.slf4j
    slf4j-api
    1.7.25



    org.slf4j
    slf4j-simple
    1.7.25

As versões mais recentes dessas bibliotecas podem ser encontradas emMaven Central.

3. Exemplos

Normalmente, todas as exceções são registradas usando o métodoerror() disponível na classeLogger. Existem algumas variações desse método. Vamos explorar:

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

Vamos primeiro inicializar oLogger que vamos usar:

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

Se precisarmos apenas mostrar a mensagem de erro, podemos simplesmente adicionar:

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

A saída do código acima será:

ERROR packageName.NameOfTheClass - An exception occurred!

Isto é bastante simples. Mas, para adicionar informações mais relevantes sobre a exceção (incluindo o rastreamento de pilha), podemos escrever:

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

A saída será:

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

Na presença de vários parâmetros, se o último argumento em uma instrução de log for uma exceção, o SLF4J presumirá que o usuário deseja que o último argumento seja tratado como uma exceção em vez de um parâmetro simples:

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

No snippet acima, a mensagemString será formatada com base nos detalhes do objeto transmitido. Usamos chaves como marcadores para os parâmetrosString passados ​​para o método.

Nesse caso, a saída será:

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

4. Conclusão

Neste tutorial rápido, descobrimos como registrar exceções usando a API SLF4J.

Os trechos de código estão disponíveis emGitHub repository.