我正在尝试使用$log.debug("Foo")。它怎么能被打开和关闭。我到处都找不到样本。我认为它需要在配置中设置,但我似乎也不能让它工作。
在哪里设置开关?
发布于 2013-03-23 09:08:56
$logProvider.debugEnabled(true)
这只在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
默认情况下,该选项处于启用状态。
发布于 2015-09-11 00:23:45
您可以使用装饰器覆盖默认的$log行为,以增强日志级别。这是一个示例:
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/的John Crosby的工作中获得的灵感
发布于 2017-06-28 23:24:04
我也遇到过同样的问题,但这不是通过编码就能解决的问题,只需从浏览器控制台启用它即可
转到浏览器的控制台,将级别设置为详细
https://stackoverflow.com/questions/15561853
复制相似问题