Usando o CDI em um padrão singleton

Estou tentando injetar um objeto logger em uma classe que é implementada após uma abordagem singleton.

O código quase se parece com isso:

Logger classe:

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

Então eu crio uma classe que precisa de logger e implementa o Singleton Pattern:

public class MySingleton{
    @Inject
    private Logger logger;

    private MySingleton instance;

    /*
     * Private constructor for singleton implementation
     */
    private MySingleton(){
        logger.info("Creating one and only one instance here!");
    }

    public MySingleton getInstance(){

        if(instance == null) {
            instance = new MySingleton();
        }

        return instance;
    }

}

Se eu executar o código (no Glassfish 3.1.2.2), recebo um NPE assim que tento usar o logger. O que estou fazendo errado (beans.xml arquivo está no lugar)? Eu também tentei usar@Inject com um método setter para oLogger objeto, mas sem sorte.

questionAnswers(2)

yourAnswerToTheQuestion