Как включить / выключить $log.отладка в в AngularJS



Я пытаюсь использовать $log.отладка("Фу"). Как его можно включить и выключить. Я нигде не могу найти образец. Я думаю, что это должно быть установлено в конфигурации, но я не могу заставить это работать.



где можно установить переключатель включения и выключения?

493   5  

5 ответов:

$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;
    });
});

Это было вдохновлено работой Джона Кросби в http://www.thekuroko.com/using-angulars-log-provider/

Я столкнулась с той же проблемой, но это не проблема должна быть решена путем кодирования вместо того, чтобы просто включить его из консоли браузера

перейдите в консоль браузера и установите уровень verbose

основываясь на ответе Диего, но добавив некоторую конфигурацию env и сделав ее короче. Вы можете просто запустить приложение, используя: NODE_ENV=development или NODE_ENV=production

например, 1. NODE_ENV=development webpack-dev-server

например, 2. NODE_ENV=production node app.js

$logProvider.debugEnabled(process.env.NODE_ENV === 'development');
$provide.decorator('$log', function($delegate) {
    $delegate.info = $logProvider.debugEnabled() ? $delegate.info : function() {};
    $delegate.log = $logProvider.debugEnabled() ? $delegate.log : function() {};
    return $delegate;
});

Ну, так как решение требует, чтобы мы включили Verbose флаг, я думаю, что лучший способ справиться с регистрацией в angular было бы просто изменить родной

Comments

    Ничего не найдено.