2016-09-28 10 views
0

私は、$ log.debugを使用してデバッグメッセージをコンソールに記録している角度アプリを持っています。アプリケーションのサイズが増えているので、本番環境に配備されたときにこれらのログファイルをグローバルに無効にする方法があるかどうかを確認したいと考えました。私はいくつかの投稿を見て、$ logProviderを設定してデバッグをコンソールにログ出力しないようにすることができます($ logProvider.debugEnabled(false);)、これは私にとっては役に立ちません。ここで私はこれを追加私のコントローラのいずれかである:これは、すべてのエラーをスローしないとページが期待通りに動作しますが、私はまだコンソール内のすべてのデバッグログを見ることができます

(function() { 
    'use strict'; 

    angular 
     .module('bodyShop') 

     // This config was added to globally disable logs 
     .config(function($logProvider){ 
      $logProvider.debugEnabled(false); 
     }) 

     .controller('CustomerController', function ($log, $window) { 

     var vm = this; 
     ... 
     ... 
     ... 
     ... 
     ... 

また、このコントローラのログを「グローバルに」無効にするだけであることはわかっています。しかし私は私のアプリケーション全体でログを無効にすることができるように、私のモジュールに$ logProvider設定を追加しようとしましたが、成功しませんでした。

アドバイスが役に立ちます。

+0

は実際にはアプリ全体で無効にする必要があります。いくつのモジュールがあるかにかかわらず、1つの '$ logProvider'しかありません。他の設定のどこか他の場所で有効になっていないことは確かですか? – charlietfl

+0

私はYeomanを使ってAngularJS-Gulpアプリケーションを生成しました。他にどこでこれを設定できるか考えていますか? –

+0

ファイル検索を行う – charlietfl

答えて

0

探しているものだと思います一つだけ$logProviderアプリで関係なく、そうdebugEnabledを設定するどのように多くのモジュールの一回

唯一の説明は、それが1が

を示した後に実行する別の設定にどこかに設定されていることだろうに注入されているすべてのモジュール間でグローバルになります
+0

ありがとう!私のアプリはYeoman角形ジェネレータを使って構築されているので、index.config.jsに$ logProviderの設定があります。値をfalseに変更することで動作することを確認しました。すべての$ log.debugのロギングが無効になっていました。 –

0

デコレータを使用すると、デフォルトのロギング動作を変更できます。そこここでhttp://www.thekuroko.com/using-angulars-log-provider/

でジョン・クロスビーの記事は、私はそれを実行していない答えHow to turn on/off $log.debug in AngularJSから仕事をするいくつかのコードがされているが、私はそれはあなたがあり

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; 
    }); 
}); 
+0

私はデコレータを調べなければならないでしょう。上記のコードは私のためには機能しませんでした。しかし、 "$ logProvider.debugEnabled(false);"動作しません、それは私がこのルートと一緒に行かなければならないようです –

関連する問題