Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PopUpAppender的问题-似乎是';未定义';_Javascript_Appender_Log4javascript - Fatal编程技术网

Javascript PopUpAppender的问题-似乎是';未定义';

Javascript PopUpAppender的问题-似乎是';未定义';,javascript,appender,log4javascript,Javascript,Appender,Log4javascript,我试图在我的项目中包含log4javascriptJS库,因此,我使用popupapper配置了一个名为logger的简单对象,我一遍又一遍地看到了相同的消息: Uncaught TypeError: Cannot read property 'focusPopUp' of undefined 指向PopUpAppender函数中的以下行: function PopUpAppender(lazyInit, initiallyMinimized, useDocumentWrite,

我试图在我的项目中包含
log4javascript
JS库,因此,我使用
popupapper
配置了一个名为
logger
的简单对象,我一遍又一遍地看到了相同的消息:

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
plain
HTML
站点,包括
log4javascript.js
log4javascript\u uncompressed.js
以交替测试任何文件中的行为是否不同。但是每次我尝试以所描述的方式初始化
logger
对象时,我都会看到相同的错误

如果我后退一步,尝试以最简单的方式初始化
记录器
,如:

var log = log4javascript.getDefaultLogger();
一切正常,我看到记录器输出弹出并写出我的第一条日志消息

我在尝试初始化
记录器
对象时是否出错?我看不到任何绊脚石,因为我所做的基本上与
log4javascript.getDefaultLogger()
方法所做的相同:

log4javascript.getDefaultLogger = function() {
        if (!defaultLogger) {
            defaultLogger = log4javascript.getLogger(defaultLoggerName);
            var a = new log4javascript.PopUpAppender();
            defaultLogger.addAppender(a);
        }
        return defaultLogger;
    };
有什么提示吗


编辑:

我以这种方式初始化我的
记录器

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>

Log4Javascript试用页面!
var logger=log4javascript.getLogger('main');
var appender=log4javascript.popupapper();
logger.addAppender(appender);
debug('Logging enabled!');

但我还是不断收到相同的错误…?

问题是您需要使用
new

var appender = new log4javascript.PopUpAppender();

这听起来像是一个log4javascript错误,尽管如果是这样的话,这是一个相当令人惊讶的错误。您可以添加用于初始化记录器的代码吗?@TimDown谢谢您的回答-我添加了上面的代码(在“编辑”部分中)。这种行为对我来说也是非常令人惊讶的,因为我正在初始化
logger
对象,就像通过
getDefaultLogger()
方法一样…@TimDown我添加了一个(可能)更清晰的代码示例显示了我在做什么以及如何初始化
log4javascript
logger
对象……@herom:我觉得自己像个傻瓜,没有马上发现它。