代码之家  ›  专栏  ›  技术社区  ›  Purrell

Log4JS控制台应用程序初始化

  •  1
  • Purrell  · 技术社区  · 14 年前

    我想知道是否有人有使用 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),它没有错误。所以好像还没准备好。有没有人看过或者知道什么是解决办法?

    干杯

    1 回复  |  直到 6 年前
        1
  •  6
  •   Tim Down    14 年前

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

    推荐文章