Как включить / выключить $log.отладка в в AngularJS
Я пытаюсь использовать $log.отладка("Фу"). Как его можно включить и выключить. Я нигде не могу найти образец. Я думаю, что это должно быть установлено в конфигурации, но я не могу заставить это работать.
где можно установить переключатель включения и выключения?
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