winston logger を使用しようとしていますが、ファイル トランスポートで使用すると奇妙な動作をするようです。おそらくそれは私が見逃していて、理解できなかったものです。問題を説明するために簡単な例を作成しました。テストにはモカを使用します。
var log = require('winston')
log.add(log.transports.File, { filename: 'output.log' });
describe('Logger', function() {
it('should save the 1st message', function(done) {
log.info('1: this is the 1st message', function() {
console.log('done 1')
done()
})
})
it('should save the 2nd message', function(done) {
console.log('before test 2')
log.info('2: this is the 2nd message', function() {
console.log('done 2')
done()
})
})
it('should save the 3rd message', function(done) {
log.info('3: this is the 3rd message', function() {
console.log('done 3')
done()
})
})
}
)
最初のメッセージは output.log ファイルに保存されますが、他のメッセージは保存されません。実際には、最初のテストのコールバックのみが呼び出されます。は'before test 2'
印刷されますが、'done 2'
そうではありません...そして2番目のメッセージも保存されません。
しかし、2 行目にコメントを付けると ( log.add(log.transports.File,...
)、正常に動作し、すべてのメッセージがコンソールに表示されます。何か不足していますか、それともバグですか?
私が使用している winston のバージョンは 0.7.1 です。
前もって感謝します。
ps:これconsole.log
はテストをテストするためだけのものでした;-)