Usando CDI en un patrón de singleton

Estoy tratando de inyectar un objeto logger en una clase que se implementa siguiendo un enfoque de singleton.

El código casi se ve así:

Logger clase:

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

Luego creo una clase que necesita registrador e implementa el patrón Singleton:

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;
    }

}

Si ejecuto el código (en Glassfish 3.1.2.2) obtengo un NPE tan pronto como intento usar el registrador. Lo que estoy haciendo mal (beans.xml archivo está en su lugar)? También he intentado usar@Inject con un método setter para elLogger Objeto pero sin suerte.

Respuestas a la pregunta(2)

Su respuesta a la pregunta