google-closure库还包含大多数开发人员应该熟悉的logging system。这很好。不幸的是,从某些浏览器/插件提供的console.log
获得的输出不如表达。是否有可能为`goog.debug.Logger`获得更好的输出(如`console.log`)?
例如,如果您在Chrome中编写console.log(window)
,则控制台将显示一个可交互检查的对象。当使用google-closure记录器时,它不会那样做。我假设它将在内部简单地将对象的字符串表示形式传递给console.log
。所以你失去了很多便利。因此,我仍然继续使用console.log
。但是,如果运气不好,你忘了从产品代码中删除它,那么你的代码将在没有console.log
(f.ex .: IE)的浏览器中被破坏。
或者,也可以防止这种情况,通过检查是否存在第一,例如:
window.console && window.console.log && console.log(...)
或:
if (DEBUG) {
console.log(...)
}
但是这两种解决方案是远远不够完善。并且,假设库具有日志框架,那么能够使用它是很好的。现在,我发现console.log
有时更有用。
所以我的问题(在TL/DR):我可以让谷歌闭合用户console.log(x)
当我使用的x
一个字符串表示写myLogger.info(x)
代替它?
我一直在寻找的关键位是'goog.debug.expose'。当我第一次查看日志框架的文档时,我错过了这一点!尽管不如交互式的console.log转储方便,但在大多数情况下这样做会很好。那谢谢啦! – exhuma
恐怕这个答案中的代码会导致错误。由于您在导入后立即使用'goog.debug.Console',因此'goog.require ...' – hguser