Переопределить методы хоста браузера консоли - PullRequest
1 голос
/ 20 марта 2012

Я бы хотел переопределить методы в консоли, такие как журнал и информация, чтобы я мог добавить больше информации.Кроме того, я добавлю конфигурацию, если позволю выводить консольные методы.

Я не знаю, возможно ли это, поскольку Console - это метод хоста браузера.

Я получаю эту ошибкувызов метода переопределения: «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
...