Pessoal
Tenho usado LOG4J da maneira mais simples possível, ou seja, colocando as mensagens por todo o código:
logger.logDebug("About to send message: " + message.getValue());
//DO STUFF…
logger.logDebug("Message sent: " + message.getValue());
Isso polui extramamente o código, além de permitir que partes da aplicação não sejam cobertas corretamente com logs (por falha do desenvolvedor). Imagino que existam coisas muito mais modernas para isso. Uma que já ouvi falar é AOP, mas não sei o quão efetivo AOP é principalmente no que se refere a “Revelar” os valores de variáveis em cada iteração (não somente mostrar por onde a linha de execução está passando).
Existe alguma tipo de framework baseado em reflection, BCEL, AOP… que possa fazer isso de forma elegante?
Pontos que acredito serem importantes:
Ser pouco intrusivo;
Elegante;
Mostra valores de váriáveis (mesmo locais);
Impacto mínimo na performance do código quando o LOGGER estiver desabilitado;
Não necessitar de restart da aplicação para funcionar (Sair de nível 0 para 10, por exemplo);
Obrigado