node.js アプリケーションを作成しており、ロギングにbunyanを使用しています。私がやりたいことは、アプリの初期化で bunyan ロガーの 1 つのインスタンスを作成することです。これからは、ロガーを必要とするすべてのモジュールが同じ構成オプションで同じインスタンスを取得するようにします。
// index.js
var logger = require('./app/utils/logger');
var config = require('./app/config');
config.init().then(function(configData) {
// create the logger instance once
var log = logger({
name: 'appLogger'
level: configData['log.level'],
src: process.env.NODE_ENV === 'development',
streams: [{
path: path.resolve(configData['log.file']),
type: 'file'
}]
});
log.info('logger created');
}).catch(function(err) {
console.log(err)
});
今、アプリ内のすべてのモジュールが同じロガー インスタンスを取得するようにします。
// foo.js
var log = require('./app/utils/logger');
log.info('this should be logged in the file that was defined in index.js');
ロガー モジュールに実装すべき推奨設計パターンは何ですか?
// logger.js
var bunyan = require('bunyan');
// bunyan.createLogger(options)
// what should be here?