最近、node12sにログインしてwinston
を使用する考えがありました。私はそれを構成し始め、それは成長し始めました。私はindex.jsファイルでそれを使用しますが、それが大きくなってから、そのファイルをモジュールで分けました。私はモジュールで起こったこともログに記録したいが、そのためには毎回winstonログを要求して再設定するか、index.jsからwinston loggerをモジュールに注入する必要があるだろう。私は最後の方法が良いと思いますが、より良い方法がありますか?私の考えは次のとおりです。仮定するlogginは私の設定したログオブジェクトで、ここで私は、各myModule.jsにどうなるのかです:nodejsモジュールでlog(またはindex.jsの他のオブジェクト)を使用する
var logging;
module.exports.injectLog(loggingObject) {
this.logging = loggingObject;
}
module.exports.someFunctionThatNeedsToBeLogged() {
//do something
logging("doing some log");
}
次にindex.jsに私はこのようなモジュールが必要になります。
var myModule = require('./myModule.js').injectLog(loggingObject);
これは良いアプローチですか?
私はロガーを2回ロードしませんでしたか? 1つはロガーを使用するモジュールが必要なとき、もう1つはindex.jsでロガーが必要なときですか? – Gatonito
最初にロードされたときにノードによってキャッシュされる必要があります。これは、 'console.log( 'testing');を追加することで簡単に確認できます。' winston.configure ... 'の後に – leesio