77

$ log.debug( "Foo")を使用しようとしています。どうすればオフにできますか。サンプルがどこにも見つかりません。設定で設定する必要があると思いますが、どちらも機能しないようです。

オンとオフのスイッチはどこで設定しますか?

4

5 に答える 5

137

$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

デフォルトではオンになっています。

于 2013-03-23T01:08:56.273 に答える
14

デフォルトの $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/の作業から着想を得たものです。

于 2015-09-10T16:23:45.497 に答える