我想知道是否有人碰巧有Log4js使用经验?在将其添加到记录器对象之后,似乎通常的ConsoleAppender并不总是可以立即使用...如果我在文档中有两个连续的脚本标签,例如:

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


控制台仍在初始化,之后便在那里,但是对于第一个记录器调用来说,它似乎还没有完全存在。如果我第一个记录器调用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的作者。

10-06 04:09