$ log.debug( "Foo")を使用しようとしています。どうすればオンにできますか。どこにもサンプルが見つかりません。 configで設定する必要があると思いますが、それを機能させることはできません。
オン/オフスイッチはどこで設定しますか?
$ 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 Crosbyの仕事から着想を得たものです
私は同じ問題に直面しましたが、ブラウザコンソールから有効にするだけでコーディングすることで解決する問題ではありません
ブラウザのコンソールに移動し、レベルを詳細に設定します
ディエゴの応答に基づきますが、いくつかの環境設定を追加し、短くします。次を使用してアプリを実行できます: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をネイティブの_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
_を無効にすることもできます。