Injetando Log com CDI

Para centralizar e unificar a criação de Log em projetos o CDI oferece a criação de métodos “produtores” para Log, que disponibiliza a api de log a partir de injeção para utilização em classes de context CDI, segue a baixo como criar um método produtor de Logger:

public final class LoggerProducer {

    @Produces
    public Logger createLogger(InjectionPoint ip) {
        return LoggerFactory.getLogger(ip.getMember()
           .getDeclaringClass().getName());
    }

}
  • @Produtos: Marca o método createLogger como “produtor” de Logger, ou seja, toda vez que injetar Logger(@Inject Logger) o método createLogger será chamado;
  • InjectionPoint: Prove acesso a dados da classe onde foi injetado, nesse caso é necessário porque a Factory do logger exige a classe em que será criado o Log;
  • ip.getMember().getDeclaringClass().getName(): Retorna o nome da classe que foi injetado;

A baixo a utilização do logger injetado:

   @Inject
   private Logger logger;

   public void teste() {
       logger.debug(" ------------- LOG ----------------");
       logger.error(" ------------- Log ----------------");
   }
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.