覆盖控制台浏览器主机方法

时间:2012-03-20 13:43:20

标签: javascript google-chrome webkit console

我想在日志和信息中覆盖Console中的方法,以便我可以添加更多信息。另外,如果我允许输出控制台方法,我会输入配置。

我不知道是否可以,因为Console是浏览器主机方法。

我在调用override方法时遇到此错误:“Uncaught TypeError:Illegal invocation”

这是我想要的:

var config = {
    enableConsole: true,
    logLevel: {
        0: 'Trace',
        1: 'Debug',
        2: 'Info'
    }
}


var overrideConsole = function () {

    var origLog = console.log;

    if (window.console) {

        if (config.enableConsole) {

            console.__proto__.log = function (msg, level) {
                if (level) {
                    level = config.logLevel[level];
                } else {
                    level = config.logLevel[0];
                }
                origLog(level + ': ' + msg);
            }
        }
    } else {
        console = function () {};
    }
}

overrideConsole();

console.log('Hello world', 2); // Info: Hello world

0 个答案:

没有答案