WinstonMongoDB:如何将日志管道传输到多个集合,而不是全部传输到一个集合

Winston MongoDB: How to pipe logs to many collections, instead all goes to one collection

本文关键字:集合 传输 全部 一个 管道 日志 WinstonMongoDB      更新时间:2023-09-26

如何使winston mongodb同时将日志记录到不同的集合

var winston = require('winston');
require('winston-mongodb').MongoDB;

var logger = new winston.Logger({
  level: 'info',
  transports: [
    new(winston.transports.MongoDB)({
            db : 'mongodb://xxxx'
        })
  ],
  capped : true,  // defaults to false
})

这一个将所有内容记录到默认集合log,但我需要对每个模块进行收集,这样我就知道在哪里调查特定域的特定问题

简单而直接,我们可以将日志引导到我们想要的任意多个集合:

winston.loggers.add('mongoLog',{
    transports : [
        new(winston.transports.MongoDB)({
            db : 'mongodb://xxxxx',',
            collection : 'collection1',
            level : 'info',
            capped : true
        }),
    ]
});
var mongoLog = winston.loggers.get('mongoLog')
mongoLog.info('hello') 

winston.loggers.add('profileLog',{
    transports : [
        new(winston.transports.MongoDB)({
            db : 'mongodb://xxxxx',
            collection : 'collection2',
            level : 'info',
            capped : true
        }),
    ]
});
var profileLog = winston.loggers.get('profileLog')
profileLog.error('user profile is not valid')