Вход в закрытие Google и выгрузка объектов в консоль, например console.log(myObject)

Мне нравится иногда сбрасывать объекты в консоль, чтобы я мог щелкнуть по нему и проверить его. Например:

console.log(document.body);

В конце концов, кажется, что журналы регистрируют все для консоли под каждой группой (ошибки, предупреждения, информация...). Но не сбрасывает объект. Вместо этого средства форматирования сначала превращают его в строку, а затем отображают ее.

Использование goog.debug.expose несколько помогает, но может создать огромные объемы текста вместо аккуратной кликабельной строки для использования для проверки, как это делает FireBug/Chrome.

Чтобы решить эту проблему, я закомментировал некоторый код в goog/debug/logger.js

// goog.global['console']['timeStamp'](msg);
...
// goog.global['console']['markTimeline'](msg);

Когда я вхожу в систему, я использую google.debug.Logger для коротких сообщений и пишу функцию для выгрузки объектов в консоль. Вот пример: (некоторые переменные являются глобальными, поэтому я могу поиграть с ними в FireBug)

goog.require('goog.debug');
goog.require('goog.debug.DivConsole');
goog.require('goog.debug.Logger');
var con;
var l;
// dump object to firebug or chrome console for clickable inspection
var dumpToConsole=function(o){
    try{
        goog.global['console']['log'](o);
    }catch(e){
        l.warn("Cannot dump object to console."+
             goog.debug.deepExpose(o, true));
    }
}
var demoDebug = function() {
    var el=document.createElement("div");
    el.style.maxHeight="50px";
    el.style.overflow="auto";
    document.body.appendChild(el);
    con=new goog.debug.DivConsole(el);
    con.setCapturing(true);
    l = goog.debug.Logger.getLogger('myApp.translate');
    l.info("info");
    l.log("log");
    //dump object to console:
    dumpToConsole(document.body);
}
...
//in another script block later in the page:
demoDebug();

Мой вопрос:

Это хороший способ ведения журнала?

Запланируйте поместить весь код регистрации в if (goog.DEBUG) { блок, поэтому он не будет скомпилирован при развертывании приложения.

0 ответов