$ log.debug( "Foo")を使用しようとしています。どうすればオフにできますか。サンプルがどこにも見つかりません。設定で設定する必要があると思いますが、どちらも機能しないようです。
オンとオフのスイッチはどこで設定しますか?
$ log.debug( "Foo")を使用しようとしています。どうすればオフにできますか。サンプルがどこにも見つかりません。設定で設定する必要があると思いますが、どちらも機能しないようです。
オンとオフのスイッチはどこで設定しますか?
$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
デフォルトではオンになっています。
デフォルトの $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;
});
});
これは、John Crosby のhttp://www.thekuroko.com/using-angulars-log-provider/の作業から着想を得たものです。