我看过两个都用过了,我看不出它们的输出有什么不同。除了console.log而不需要注入$ log?
之外,对另一个有优势吗?var url = "http://www.google.com";
console.log(url);
$log.info(url);
两个语句都将字符串返回到控制台窗口。如果url是一个对象,则两者都会将该对象的属性返回到控制台窗口。
答案 0 :(得分:3)
ng.$log
服务的主要目的是让您拥有稳定的实施(跨浏览器/节点的可用性没有差异),因此您可以使用$logProvider
关闭所有调试输出(例如,生产构建或单元测试期间)。您还可以考虑注入另一个记录器实现,该实现将您的日志发送到聚合服务,或者沿着这些行发送。默认$log
服务的行为与console
完全相同。
基本上:console.log
==硬编码功能,$log
==可覆盖服务
答案 1 :(得分:1)
$ log是一个简单的日志服务。默认实现安全地将消息写入浏览器的控制台(如果存在)。
要删除console.log日志,您必须注释console.log语句。但是,如果您使用的是$ log服务,则可以禁用日志
var app = angular.module('testModule', []);
app.config(function($logProvider){
$logProvider.debugEnabled(true);
});
默认情况下,debugEnabled设置为true。