我想知道是否有人碰巧有一定的经验 log4js?似乎正常 consoleappender 将其添加到Logger对象后,并非总是准备好立即使用...如果我在文档中有两个顺序脚本标签,例如:

//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>

...它导致控制台弹出窗口(弹出窗口)在页面加载上出现带有错误消息:

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

该控制台仍然是初始化的,之后是在那里,但是对于第一个Logger调用,它似乎并没有完全存在。如果我制作第一个logger调用settimeout(“ logger.info('test test')”,1000),则没有错误。因此,就像还没有立即准备好。有人以前看到过或知道可能是什么解决方法吗?

干杯

有帮助吗?

解决方案

我可以建议使用吗 log4javascript 反而?它具有非常相似的API和一个优越的控制台,并且正在积极开发。 log4javascript中的等效物是:

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

我应该指出,我是Log4javaScript的作者。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top