javascript - log4js ConsoleAppender 初始化

标签 javascript logging log4js-node

我想知道是否有人碰巧有使用 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 的作者。

关于javascript - log4js ConsoleAppender 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791393/

相关文章:

javascript - 具有单个键的多个值的 dc.js 散点图

c# - 通过自定义跟踪监听器一次完成 WCF 请求-响应日志记录

.net - 使用 Log4Net 记录 InnerException

logging - 如何在 CaSTLe Windsor 工厂方法中获取请求类型?

javascript - 如何排除 log4js 类别被记录到默认附加程序

node.js - Log4js javascript 创建每日日志文件

javascript - ASP.NET 如何使用 ajax 将文本从文本框推送到另一个页面

php - 冲突的 Javascript 阻止表单验证

javascript - 根据选项选择重定向表单