如何打开/closuresAngularJS中的$ log.debug

我试图使用$ log.debug(“Foo”)。 它怎么能被closures。 我无法在任何地方find样品。 我认为它需要在configuration中设置,但我似乎无法得到这个工作。

在哪里设置开关?

$ logProvider.debugEnabled(真)

这只适用于AngularJs 1.1.2或更高版本。

https://github.com/angular/angular.js/pull/1625

这是一个设置的例子。

var app = angular.module('plunker', []); app.config(function($logProvider){ $logProvider.debugEnabled(true); }); app.controller('MainCtrl', function($scope, $log ) { $scope.name = 'World'; $scope.model = {value: "test"}; $log.debug('TEST Log'); }); 

http://plnkr.co/edit/HZCAoS?p=preview

默认是打开的。

您可以使用装饰器覆盖默认的$日志行为以强化日志级别。 这是一个例子:

 angular.module('app').config(function($logProvider, $provide){ $logProvider.debugEnabled(false); $provide.decorator('$log', function ($delegate) { //Original methods var origInfo = $delegate.info; var origLog = $delegate.log; //Override the default behavior $delegate.info = function () { if ($logProvider.debugEnabled()) origInfo.apply(null, arguments) }; //Override the default behavior $delegate.log = function () { if ($logProvider.debugEnabled()) origLog.apply(null, arguments) }; return $delegate; }); }); 

这是从约翰克罗斯比的工作启发,在http://www.thekuroko.com/using-angulars-log-provider/

我遇到了同样的问题,但这不是编码解决的问题,而是从浏览器控制台启用

转到浏览器的控制台,并设置级别为详细

基于迭戈的回应,但增加了一些环境configuration,并缩短。 你可以简单地运行你的应用程序: NODE_ENV=developmentNODE_ENV=production

[点拨。 NODE_ENV=development webpack-dev-server

EG2。 NODE_ENV=production node app.js

 $logProvider.debugEnabled(process.env.NODE_ENV === 'development'); $provide.decorator('$log', function($delegate) { $delegate.info = $logProvider.debugEnabled() ? $delegate.info : function() {}; $delegate.log = $logProvider.debugEnabled() ? $delegate.log : function() {}; return $delegate; });