Pregunta

Me pregunto si alguien pasa a tener un poco de experiencia en el uso log4js ? Parece que es normal ConsoleAppender no siempre está listo para usar inmediatamente después de que éste se agrega a un objeto registrador ... Si tengo dos etiquetas script secuenciales en un documento como:

//Initialize logger
<script type="text/javascript">                   
      var logger = new Log4js.getLogger("JSLOG");
      logger.addAppender(new Log4js.ConsoleAppender(logger, false));
      logger.setLevel(Log4js.Level.INFO);         
</script>


//Use logger
<script type="text/javascript">
     logger.info('Test test');
</script>

... Hace que la (ventana pop-up) de la consola emergente que aparezca un mensaje de error al cargar la página:

12:58:23 PM WARN Log4js - Could not run the listener function () {
    return fn.apply(object, arguments);
}. 
TypeError: this.outputElement is null

La consola está siendo inicializado, que está ahí después, pero por sólo esa primera llamada registrador no parece estar allí totalmente. Si hago la primera llamada setTimeout registrador ( "logger.info ( 'test test')", 1000), que no tiene el error. Así que es como si no lo está lista inmediatamente. Alguien ha visto esto antes o saber lo que podría ser una solución?

Saludos

¿Fue útil?

Solución

Mayo sugiere emplear log4javascript en su lugar? Tiene una API muy similar y una consola superior, y está en constante desarrollo. El equivalente en log4javascript sería:

<script type="text/javascript" src="log4javascript.js"></script>

<script type="text/javascript">                   
      //Initialize logger
      var logger = log4javascript.getDefaultLogger();
      logger.setLevel(log4javascript.Level.INFO);         
</script>


<script type="text/javascript">
     //Use logger
     logger.info('Test test');
</script>

Debo señalar que yo soy el autor de log4javascript.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top