use*_*592 64 logging angularjs
我知道这是一个角度使用的最佳实践,$log而不是console.log.但是,我找不到解释原因的好文件.开发人员为什么要使用$log?
Ste*_*ers 78
$log首先检查浏览器是否支持console.log(例如,IE 8不支持).这可以防止在IE 8上显示错误.注意:这并不意味着它将在IE 8上记录任何内容,它只是意味着它不会抛出错误.
除此之外,它还允许您装饰和模拟$log以进行扩展和测试,如果您愿意的话.例如,您可以将其装饰为登录到支持IE 8的阵列.
一个额外的功能:如果你传递一个JavaScript Error实例,它将尝试很好地格式化它.这可以通过阅读源代码找到.
编辑: "不是IE 8不支持console.log.它只是在打开开发工具之前不会创建控制台对象." 请参阅下面的评论以获取更多详
只是为了完成@Steve的回答(这是正确的),$log也有被关闭的优势.使用此代码,您可以禁用以下日志记录$log:
app.config(function($logProvider) {
$logProvider.debugEnabled(true);
});
Run Code Online (Sandbox Code Playgroud)
如果要一次禁用所有日志,而不是手动逐行删除它,这非常方便.