Библиотека google-closure также содержит logging system, который должен быть знаком большинству разработчиков. Это мило. К сожалению, вывод, который вы получаете, менее выразителен, как при использовании console.log
, как это было сделано некоторыми браузерами/плагинами.Возможно ли получить лучший результат для `goog.debug.Logger` (например,` console.log`)?
Например, если вы написали console.log(window)
в Chrome, консоль отобразит объект, который вы можете интерактивно проверить. При использовании регистратора google-закрытия он этого не сделает. Я предполагаю, что он будет внутренне просто передавать строковое представление вашего объекта на console.log
. Таким образом, вы теряете много удобства.
Из-за этого я все еще продолжаю использовать console.log
. Но тогда, если вам удастся удалить его из производственного кода, ваш код будет разбит в браузерах, которые не имеют console.log
(f.ex .: IE).
В качестве альтернативы, можно защититься от этого, путем проверки наличия первого, например:
window.console && window.console.log && console.log(...)
или:
if (DEBUG) {
console.log(...)
}
Но оба решения далеки от совершенства. И, учитывая, что библиотека имеет структуру ведения журнала, было бы неплохо иметь возможность ее использовать. Как сейчас, я нахожу console.log
гораздо полезнее время от времени.
Так что мой вопрос (tl/dr): Могу ли я сделать пользователя закрытия Google console.log(x)
, когда я пишу myLogger.info(x)
вместо него, используя строковое представление x
?
Критическое бит я искал был 'goog.debug.expose'. Я пропустил это, когда впервые посмотрел на документы фреймворка! Хотя это не так удобно, как интерактивный «console.log» дамп, в большинстве случаев это будет хорошо. Так что спасибо! – exhuma
Я боюсь, что код в этом ответе вызовет ошибки. Поскольку вы используете 'goog.debug.Console' сразу после его импорта' goog.require ... ' – hguser