首页 文章

无法将日志保存到mongodb数据库以获取winston-nodejs

提问于
浏览
6

我正在使用winston库:https://github.com/flatiron/winston尝试使用以下命令将数据存储到mongodb数据库:https://github.com/indexzero/winston-mongodb

插入我使用的数据:

var MongoDB = require('winston-mongodb').MongoDB;
var logger = new (winston.Logger)({
transports: [
    new (winston.transports.Console)(),
    new (winston.transports.MongoDB)({ host: ip,  db: 'caribcultivate', collection: 'log', level: 'info'})
], exceptionHandlers: [ new winston.transports.Console() ]
});
logger.log('info', "Running logs "+ d);
logger.info("Drive: "+ (new Date(d)).toDateString());

但是当我尝试使用以下方法查询数据时:

winston.query(options, function (err, results) {
    if (err) {console.log(err);}
    console.log(results);
});

我明白了:

{}

它适用于控制台,我正在使用Mongoose库的应用程序的其他部分中的数据库 .

2 回答

  • 3

    我遇到了类似的问题 . 事实证明,问题在于Winston MongoDB传输期望主机选项只是主机名,而我在前面加上 mongodb:// .

    mongodb://123456.mongolab.com 删除 mongodb:// 后,以下内容适用于我:

    var logger = new(winston.Logger)({
        transports : [
            new(winston.transports.MongoDB)({
                db : 'logs',
                host : '123456.mongolab.com',
                username : 'username',
                password : 'password'
            })
        ]
    });
    
  • 2

    它应该是如此简单,它将在一行中:

    db : 'mongodb://myuser:mypass@ds047777.mongolab.com:54545/MyLogDB
    

相关问题