PopUpAppender的问题 - 似乎是“未定义的”

时间:2013-02-08 09:29:04

标签: javascript appender log4javascript

我尝试在我的项目中包含log4javascript JS库,因此遵循一个快速示例来配置一个带有logger的简单命名PopUpAppender对象,我看到了相同的消息一遍又一遍:

Uncaught TypeError: Cannot read property 'focusPopUp' of undefined

指向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对象时,我都会看到同样的错误。

如果我退后一步尝试以最简单的方式初始化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文件夹,它是log4javascript * .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>

但我仍然遇到同样的错误......?

1 个答案:

答案 0 :(得分:1)

问题是您需要使用new

var appender = new log4javascript.PopUpAppender();