Exceptions e Log4J

2 respostas
ASOBrasil

Pessoal,

Ao criar minhas exceptions para um sistema, seria uma boa eu colocar o Log4J já dentro destas exceptions? Ou seja, a partir do momento em que ocorrer uma exceção, esta já será gravada de acordo com a configuração do Log4J e não precisarei ficar colocando logger.xxx no meu código! Além de deixar as mensagens padronizadas. O que vcs acham? Veem algum problema com isto?

Exemplo abaixo contém somente a idéia!

Ao invés de eu fazer isso:

...
} catch (SQLException e) {
    String msgErro = "Erro ao executar a query do método XXX!";
    logger.fatal(msgErro);
    throw new MinhaSQLException(msgErro, e);
}

Farei isto:

...
} catch (SQLException e) {
    throw new MinhaSQLException("XXX!", e);
}

A mensagem completa estará dentro da própria MinhaSQLException, deixando assim as mensagens padronizadas, como dito acima.

ASOBrasil

2 Respostas

agodinho

hmmmm, eu gosto dessa abordagem - desde que vc crie uma hierarquia decente de exceção (não adianta criar uma única exceção - genérica e usá-la por todo seu código). Isso irá reduzir seu código em apenas uma linha - a linha de chamada do log.

É sempre bom ver se vc pode subclassificar suas exceções (a mensagem pode não ser suficiente) - Isso porque vc não terá mais a linha/classe exata em que o log foi disparado, agora essa linha/classe apontará pra sua exception …

Se amanhã ou depois vc decidir por desligar o log basta alterar o log4j.properties para uma exceção específica (isso que é lesgal!)

Óbviamente estamos falando apenas de exceções - suas outras chamadas de log continuarão onde estão (pra manter as informações da classe/linha loggada).

M

Bom o que fazemos aqui em nossa empresa
usamos orientacao ASPECT ou seja assim que acontecer a exception ele ira chamar o método que automaticamente ira colocar a exception nos properties
mas estou com problemas para colocar as exceptions no codigo
assim que conseguir postarei aqui

Criado 12 de outubro de 2006
Ultima resposta 21 de out. de 2010
Respostas 2
Participantes 3