为什么使用angular' s $ log而不是console.log?

时间:2014-06-12 13:35:55

标签: angularjs logging

我理解使用$log代替console.log是角度的最佳做法。 但是,我找不到解释原因的好文件。开发人员为什么要使用$log

2 个答案:

答案 0 :(得分:78)

$log首先检查浏览器是否支持console.log(例如,IE 8不支持)。这可以防止在IE 8上显示错误。注意:这并不意味着它会在IE 8上记录任何内容,它只是意味着它不会抛出错误。

除此之外,如果您愿意,它还允许您decorate和模拟$log进行扩展和测试。例如,您可以将其装饰为登录到支持IE 8的数组。

奖励功能:如果您将JavaScript Error实例传递给它,它将尝试很好地格式化它。这可以通过阅读source code找到。

编辑:“IE 8不支持console.log。它只是在打开开发工具之前不会创建控制台对象。”有关详细信息,请参阅下面的评论。

答案 1 :(得分:8)

只需完成@Steve's answer(这是正确的),$log还具有关闭的优势。使用此代码,您可以从$log禁用日志记录:

app.config(function($logProvider) {
  $logProvider.debugEnabled(true);
});

如果您想一次禁用所有日志,而不是手动逐行删除它,这非常方便。

相关问题