log4js ConsoleAppender初始化

问题描述 投票:1回答:1

我想知道是否有人碰巧使用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),它没有错误。所以它就像它没有立即准备好。任何人以前都会看到这个或知道解决方法可能是什么?

干杯

javascript logging log4js-node
1个回答
6
投票

我可以建议使用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的作者。

© www.soinside.com 2019 - 2024. All rights reserved.