Como usar Log em aplicações

Bysutradi

Como usar Log em aplicações

O uso de Logs em aplicações é uma boa prática para apoiar a equipe de desenvolvimento a encontrar ocorrências (erros) apontadas pelos usuários. Neste ponto não abordarei a prática do TDD, ok?

Pensando no uso do Log4J, um dos principais frameworks de Log, você sabe usar os tipos mensagens que podem ser apresentadas e usá-las de uma forma a ajudá-lo?

Vejam abaixo alguns pontos sobre os principais usos.

INFO

O nível INFO é utilizado para informar eventos significativos do ciclo de vida normal da aplicação. Exemplo:

LOG.info("Conta para o CPF " + cpf + " foi cadastrada com sucesso pelo usuário " + usuario);
LOG.info("SMS enviado com sucesso para o cliente " + cpf);

DEBUG

O nível DEBUG é normalmente utilizado como um complemento ao nível INFO como, por exemplo, parâmetros de um determinado método ou resultado de uma operação que pode ser importante para o rastreamento de problemas na aplicação. Exemplo:

// no início do método
LOG.debug("salvarConta(" + cpf + ", " + usuario + ")");

// no fim do método
LOG.debug("salvarConta finalizado em " + tempo + " milisegundos");

ERROR

O nível ERROR é utilizado mais freqüentemente, normalmente seguindo uma Java Exception. Essas condições de erro, não necessariamente causam o término anormal da aplicação, sendo que a aplicação pode continuar atendendo às próximas requisições normalmente. Exemplo:

// Dentro de um catch
LOG.error("Erro na tentativa de salvar a conta para o CPF " + cpf + ". Erro: " + exception);

WARN

O nível WARN indica problemas de menor gravidade, normalmente causados por fatores externos, como falta ou inconsistência de parâmetros passados pelo usuário. Exemplo:

LOG.warn("O parâmetro CPF não foi preenchido");

LOG.warn("A Mensagem " + nomeMensagem + " deveria ter 120 caracteres, mas veio com 118");

Exemplo prático

Suponhamos que temos a regra “Ao cadastrar a conta, enviar SMS para cliente.”, a implementação seria algo como:

// Início do método salvarConta
LOG.debug("salvarConta(" + cpf + ", " + usuario + ")");
try {
// Cadastrar Conta
LOG.info("Conta para o CPF " + cpf + " foi cadastrada com sucesso pelo usuário " + usuario);
// Enviar SMS
LOG.info("SMS enviado com sucesso para o cliente " + cpf);
} catch (ExceptionNegocio en) {
// Tratar aqui também com WARN, DEBUG ou ERROR
} catch (Exception exception) {
LOG.error("Erro na tentativa de salvar a conta para o CPF " + cpf + ". Erro: " + exception);
}
LOG.debug("salvarConta finalizado em " + tempo + " milisegundos");
// Fim do método salvarConta

Claro, a forma de uso pode ser mais refinada para cada projeto.

About the Author

sutradi administrator

Leave a Reply