我理解使用$log
代替console.log
是角度的最佳做法。
但是,我找不到解释原因的好文件。开发人员为什么要使用$log
?
答案 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);
});
如果您想一次禁用所有日志,而不是手动逐行删除它,这非常方便。