:私は、最上位ノードのロギングシステムを見ていたnpmlog
、log4js
、bunyan
とwinston
して使用することを決めたwinston
最も持つためにnpm
毎月のダウンロードを。
セットアップしたいのはlogger.debug(...)
、本番環境では何もログに記録しない開発環境で使用できるカスタムロガーです。これは私を助けるので、開発環境では、すべての出力が表示されるので、何も書く必要はありません。
これは私が今持っているものです:
var level = 'debug';
if (process.env.NODE_ENV !== 'development'){
level = 'production'; // this will never be logged!
}
var logger = new winston.Logger({
transports: [
// some other loggings
new winston.transports.Console({
name: 'debug-console',
level: level,
prettyPrint: true,
handleExceptions: true,
json: false,
colorize: true
})
],
exitOnError: false // don't crush no error
});
JavaScript Object
またはJavaScript をログに記録しようとすると問題が発生しますArray
。でObject
、私はする必要がありますtoJSON()
、そしてArray
私は最初にJSON.stringify()
そしてその後必要JSON.parse()
です。
このメソッドを常に作成するのは良くありません。欲しいものをログに記録するだけです。さらに、これらのフォーマットメソッドlogger.debug()
は、それが本番環境にあり、最初にログに記録してはならない(基本的には、関数呼び出しの前に引数を評価する)ことに気付く前に、これらのフォーマットメソッドを実行する必要があるため、リソースフレンドリーでもありません。私は、古臭いのがconsole.log()
JavaScriptオブジェクトと配列をログに記録する方法が好きです。
さて、この質問を書いていると、すべてのwinston オブジェクトのカスタム形式を説明する方法があることがわかりましたtransports
。それはそれを行う方法ですか、それとも他の方法がありますか?
prettyPrintパラメータを次のように変更してみてください
prettyPrint: function ( object ){
return JSON.stringify(object);
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加