Можно ли получить лучший вывод для `goog.debug.Logger` (например, `console.log`)?

Библиотека google-closureтакже содержит систему регистрации, которая должна быть знакома большинству. Разработчики. Это приятно. К сожалению, вывод, который вы получаете, менее выразительный, чем при использовании console.log, доступного в некоторых браузерах/плагинах.

Например, если вы напишете console.log(window)в Chrome, консоль отобразит объект, который вы можете просмотреть в интерактивном режиме. При использовании регистратора google-close этого не произойдет. Я предполагаю, что внутри он просто передаст строковое представление вашего объекта в console.log. Таким образом, вы теряете много удобства.

Из-за этого я до сих пор продолжаю использовать console.log. Но затем, если по несчастью вы забудете удалить его из производственного кода, ваш код сломается в браузерах, в которых нет console.log(например, IE).

В качестве альтернативы можно защититься от этого, сначала проверив существование, например:

window.console && window.console.log && console.log(...)

или:

if (DEBUG) {
    console.log(...)
}

Но оба решения далеки от совершенства. И, учитывая, что в библиотеке естьфреймворк логирования, было бы неплохо иметь возможность его использовать. Сейчас я нахожу console.logгораздо более полезным.

Итак, мой вопрос (tl/dr): Могу ли я сделать так, чтобы пользовательская консоль закрывала Google.log(x), когда я пишу myLogger.info(x)вместо него, используя строковое представление x?

5
задан Community 25 February 2015 в 16:17
поделиться