我想在调试时将日志消息输出到控制台。在Controller中工作正常,但无法在模块配置block中工作,例如angular.module('MyApp',[]).run(function($state){//runstuffhere});.config(function($logProvider){$log.debug('Configdebugmessage');});我得到一个错误:errorTypeError:Cannotreadproperty'debug'ofundefined是否可以在模块的配置block中使用logProvider? 最佳答案
最近我的Chrome浏览器停止在控制台上显示$log.debug()消息。我一直在我的所有Controller上使用这种使用Angular而不是console.log()的日志记录方式,因为当我将脚本上传到生产服务器时很容易禁用日志记录。我已经检查了我的$logProvider配置并且debugEnabled()设置为true。出于某种原因,在chrome上显示$log.debug()消息的唯一方法是在控制台过滤器上启用verbose消息。直到最近,这还没有必要。启用详细信息并不好,因为控制台会吐出许多我不关心的其他消息。我目前在Windows7机器上使用Chromev60.0.311
问题很简单:使用AngularJS我们无法将$log注入(inject)提供程序。angular.module('my.module',[]).provider('myProvider',function($log,$logProvider){$log.log("Aloha!");//Unknownprovider:$log$logProvider.log("Hi!");//undefinedisnotafunction:$logProviderhasno`log`methodthis.$get=function($log){$log.log("Hello!");//Everythin