Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
使用requirejs时无法使log4javascript与InPageAppender一起工作_Requirejs_Log4javascript - Fatal编程技术网

使用requirejs时无法使log4javascript与InPageAppender一起工作

使用requirejs时无法使log4javascript与InPageAppender一起工作,requirejs,log4javascript,Requirejs,Log4javascript,如果我在不使用requirejs的情况下使用log4javascript,那么一切(包括页面附加器中的内容)都会按预期工作 当使用requirejs时,这会起作用(弹出窗口显示警告): 但这不起作用(页面区域中不显示): 它的摆振方式如下: requirejs.config({ shim: {'log4javascript': {exports: 'log4javascript'} } }); log4javascript的所有内容似乎都已正确定义,因此我的log4j和

如果我在不使用requirejs的情况下使用log4javascript,那么一切(包括页面附加器中的内容)都会按预期工作

当使用requirejs时,这会起作用(弹出窗口显示警告):

但这不起作用(页面区域中不显示):

它的摆振方式如下:

requirejs.config({
        shim: {'log4javascript': {exports: 'log4javascript'}
    }
});

log4javascript的所有内容似乎都已正确定义,因此我的log4j和log4jInPageAppender变量都设置了有效值。

问题在于,
InPageAppender
依赖于log4javascript自己的页面加载处理代码来知道它是否可以开始自己绘制。当通过RequireJS加载时,页面已经加载,log4javascript的页面加载处理代码永远不会运行

您可以通过调用
log4javascript.setDocumentReady()
来解决这个问题。最明智的做法似乎是在shim
init()
函数中,但我不是RequireJS方面的专家,因此可能有更好的方法:

requirejs.config({
    shim: {
        'log4javascript': {
            exports: 'log4javascript',
            init: function() {
                log4javascript.setDocumentReady();
            }
        }
    }
});
requirejs.config({
        shim: {'log4javascript': {exports: 'log4javascript'}
    }
});
requirejs.config({
    shim: {
        'log4javascript': {
            exports: 'log4javascript',
            init: function() {
                log4javascript.setDocumentReady();
            }
        }
    }
});