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

时间:2012-12-18 21:41:49

标签: node.js mongodb logging winston

我正在使用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 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

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

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