0

プロジェクト内にJSライブラリを含めようとしてlog4javascriptいるため、簡単な例に従って、を使用して単純な名前付き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.htmlhtmllog4javascript.jslog4javascript_uncompressed.jslogger

一歩下がって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:

index.htmlそこで、ページと、 *。zipパッケージjsから抽出されたフォルダーであるフォルダーのみを使用して新しいプレーンHTMLプロジェクトを開始しました。log4javascript

これは私の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>

それでも同じエラーが発生し続けます...?

4

1 に答える 1

1

問題は、以下を使用する必要があることですnew

var appender = new log4javascript.PopUpAppender();
于 2013-02-09T12:27:27.217 に答える