Angular无法禁用$ log

问题描述 投票:0回答:4

我使用angular with angular-permission库。需要在控制台中禁用警告。

angular logFn

这个组件(angular-permission)调用angular $ log服务:angular-permission

尝试在配置中禁用此功能,但警告仍显示:

$ logProvider.debugEnabled(假);

调用日志的代码:

function permissionMap($log) {
  if (PermPermissionStore.hasPermissionDefinition(privilegeName)) {
    PermPermissionStore.getPermissionDefinition(privilegeName);
      return permission.validatePermission();
    }

    $log.warn('Permission or role ' + privilegeName + ' was not defined.');
}
angularjs logging
4个回答
2
投票

使用Angularjs Decorators像这样修改$log.warn

$provide.decorator('$log', ['$delegate', function($delegate) {              
  $delegate.warn = angular.noop;
  return $delegate;
}]);

要在生产中禁用警告,请在此配置中使用此代码

angular.module('app')
 .config(['$logProvider','$provide',
    function($logProvider,$provide) {

        if(isProduction){ //flag to check production here
         $logProvider.debugEnabled(false);
         $provide.decorator('$log', ['$delegate', function($delegate) {
            $delegate.warn = angular.noop;
            return $delegate;
         }]);
       }

    }
])

希望这可以帮助 :)


0
投票

在javascript中重新定义console.log函数。

console.log = function() {}

0
投票

我找到了解决方案(重写默认的$ log.warn函数):

$ log.warn = function(){};


0
投票

来自angular-permission documentation,这是正确的方法:

  app
  .config(function ($permissionProvider) {
    $permissionProvider.suppressUndefinedPermissionWarning(true);
  })
© www.soinside.com 2019 - 2024. All rights reserved.