2013-02-08 20 views
0

我尝试在我的项目中包含log4javascript JS库,因此遵循一个简单的示例来配置一个名为logger的简单对象,其中PopUpAppender和我看到相同的消息,一遍又一遍:PopUpAppender的问题 - 似乎是'undefined'

Uncaught TypeError: Cannot read property 'focusPopUp' of undefined 

它指向follwing线PopUpAppender函数中:

function PopUpAppender(lazyInit, initiallyMinimized, useDocumentWrite, 
           width, height) { 
      this.create(false, null, lazyInit, initiallyMinimized, 
        useDocumentWrite, width, height, this.defaults.focusPopUp); // this is were the error seems to happen... 
     } 

所以,我创建了一个简单的HTML项目,只需index.html明文html网站和包括log4javascript.jslog4javascript_uncompressed.js交替测试是否在任何文件中的行为是不同的。但每次我尝试以所描述的方式初始化对象时,我都会看到同样的错误。

如果我退一步,尝试初始化logger在可能的最简单的方法,如:

var log = log4javascript.getDefaultLogger(); 

一切工作正常,我看到了记录器输出雨后春笋般冒出来,写了我的第一个日志消息。

我在尝试初始化logger对象时做错了什么吗?我看不到任何绊脚石,因为我基本上是做一样的log4javascript.getDefaultLogger()方法做:在这个

log4javascript.getDefaultLogger = function() { 
     if (!defaultLogger) { 
      defaultLogger = log4javascript.getLogger(defaultLoggerName); 
      var a = new log4javascript.PopUpAppender(); 
      defaultLogger.addAppender(a); 
     } 
     return defaultLogger; 
    }; 

任何提示?


编辑:

我初始化我logger这样

var log = log4javascript.getLogger("main"); 
var appender = log4javascript.PopUpAppender(); 
log.addAppender(appender); 
log.debug("Logging is enabled!"); 

编辑2:

于是,我开始了新的纯HTML的项目只用index.html页和js文件夹,它是从0提取的文件夹* .zip包。

这是我的整个HTML页面:

<html> 
<head> 
    <title> Log4Javascript Tryout Page!</title> 
    <script type="text/javascript" src="js/log4javascript.js"></script> 
</head> 
<body> 
    <script type="text/javascript"> 
     var logger = log4javascript.getLogger('main'); 
     var appender = log4javascript.PopUpAppender(); 
     logger.addAppender(appender); 
     logger.debug('Logging enabled!'); 
    </script> 
</body> 
</html> 

,仍然我不断收到同样的错误......?

+0

这听起来像一个log4javascript错误,虽然相当令人惊讶的,如果这样。你可以添加你用来初始化记录器的代码吗? –

+0

@TimDown谢谢你的回答 - 我添加了上面的代码(在'编辑'部分)。这种行为对我来说也是非常惊人的,因为我使用getDefaultLogger()方法来初始化logger对象...... – herom

+0

@TimDown我添加了一个(可能)更清晰的代码示例展示我在做什么以及如何初始化'log4javascript'的'logger'对象.... – herom

回答

1

的问题是,你需要使用new

var appender = new log4javascript.PopUpAppender(); 
+0

非常感谢!我觉得自己像个笨蛋...... – herom

+0

@herom:我觉得自己不会马上发现它。 –