我尝试在我的项目中包含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.js
和log4javascript_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>
,仍然我不断收到同样的错误......?
这听起来像一个log4javascript错误,虽然相当令人惊讶的,如果这样。你可以添加你用来初始化记录器的代码吗? –
@TimDown谢谢你的回答 - 我添加了上面的代码(在'编辑'部分)。这种行为对我来说也是非常惊人的,因为我使用getDefaultLogger()方法来初始化logger对象...... – herom
@TimDown我添加了一个(可能)更清晰的代码示例展示我在做什么以及如何初始化'log4javascript'的'logger'对象.... – herom