programing

Angular에서 $log.debug를 설정/해제하는 방법JS

codeshow 2023. 3. 23. 23:01
반응형

Angular에서 $log.debug를 설정/해제하는 방법JS

$log.debug("Foo")를 사용하려고 합니다.어떻게 끄지?어디에서도 샘플을 찾을 수 없습니다.설정으로 설정할 필요가 있다고 생각합니다만, 이것도 동작하지 않는 것 같습니다.

온/오프 스위치는 어디에 설정합니까?

$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/의 John Crossby의 연구에서 영감을 얻었습니다.

같은 문제에 직면했지만 코딩으로 해결할 문제가 아니라 브라우저 콘솔에서 활성화하면 됩니다.

브라우저 콘솔로 이동하여 레벨을 상세하게 설정합니다.

글쎄요, 이 솔루션에서는Verbose플래그, 각도 로그인을 처리하는 가장 좋은 방법은 단순히 네이티브를 변경하는 것입니다.console.log운영 환경에서 전체 애플리케이션에 대해 기능을 수행합니다.

angular.module("myModule")
.config(function(){
    //if production environment
    console.log = ()=>{};
})

바로 그겁니다.실가동 환경에서는, 모든 장소에서 로그가 무효가 됩니다.또한 주입할 필요가 없습니다.$log모든 컨트롤러에서 사용할 수 있습니다.간단하게console.log("logging message")동작합니다!

디세블로 할 수도 있습니다.console.info,console.warn,console.error그리고.console.debug당신의 필요에 따라 같은 방법으로요.

Diego의 응답에 근거하고 있습니다만, 몇개의 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;
});

언급URL : https://stackoverflow.com/questions/15561853/how-to-turn-on-off-log-debug-in-angularjs

반응형