2010-05-07 71 views
1

我想知道是否有人碰巧使用Log4js有一些经验?看来其正常ConsoleAppender并不总是能够立即使用它添加到记录器对象之后......如果我有这样一个文档中两个连续的脚本标签: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> 

...这导致控制台弹出-up(弹出窗口),以一个错误信息出现在网页加载:

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),它没有错误。所以就像它没有立即准备好。任何人都可以在此之前看到此消息,或知道解决方法可能是什

干杯

回答

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的作者。

+0

嘿,不错的工作!我想我可能会转过头来,谢谢你的链接。 – Purrell 2010-05-10 19:18:52