如何禁用$ logProvider?

时间:2016-10-25 12:19:02

标签: javascript angularjs logging

我对$logProvider感到困惑... 我已经禁用了日志消息,但我仍然在获取日志。

任何人都可以帮我解释这段代码中的错误吗?



angular
    .module("myModule", []).config(function ($logProvider) {
        $logProvider.debugEnabled(false);
    })
    .controller("myController", ['$scope','$log', function ($scope, $log) {
        $log.debug("This is sample text");
        $log.warn("This is sample text");
        $log.error("This is sample text");
        $log.info("This is sample text");
    }]);

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myModule" >
    <div ng-controller="myController">

    </div>
</body>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

$logProvider.debugEnabled(false);仅停用$log调试级别,这就是您仍然可以使用$log.warn$log.error和{{1}的原因}。

有关here的更多信息。

如果您想完全关闭$log.info,请检查此link,尤其是代码的这一部分:

$log

答案 1 :(得分:0)

希望这可以帮助你...

&#13;
&#13;
data
&#13;
  angular.module("myModule", [])
    .config(['$provide',
      function($provide) {
        $provide.decorator('$log', ['$delegate',
          function($delegate) {
            var origDebug = $delegate.debug;

            $delegate.debug = function() {
              var args = [].slice.call(arguments);
              args[0] = [new Date().toString(), ': ', args[0]].join('');
              origDebug.apply(null, args)
            };

            return $delegate;
          }
        ]);
      }
    ])

  .controller("myController", ['$scope', '$log',
    function($scope, $log) {
      $log.debug("This is sample text");
      $log.warn("This is sample text");
      $log.error("This is sample text");
      $log.info("This is sample text");
    }
  ]);
&#13;
&#13;
&#13;