cappedMax not working in winston-mongodb logger in

2019-09-12 23:15发布

I have created a logger in Node.js using the winston module and added MongoDB transport by requiring winston-mongodb module with the following options:

{
  db: config.db[k.DB_ENV.AUTHOR],
  username: config.dbUser,
  password: config.dbPassword,
  collection: 'log-aggregation',
  storeHost: true,
  capped: true,
  cappedMax: 10 // documents
}

I expect the logger to create a new collection for every 10 documents. But the logger continue logging in the same collection. I commented the collection: 'log-aggregation' line to check if the options are really working and then it began to log to the default 'log' collection.

So where is my mistake? Is there a minimum no of document size to the cappedMax option? I tried this with cappedSize option also with 10 to 1000 values, still the new collections are not created.

I want to know the minimum and maximum permissible value for cappedSize and cappedMax option?

I also want to know what will be the name of new collections created?

1条回答
爷的心禁止访问
2楼-- · 2019-09-12 23:38

This is what I use to get multiple logs:

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


winston.loggers.add('userLog',{
    transports : [
        new(winston.transports.MongoDB)({
            db : 'mongodb://username:password.mongolab.com:5555/log_db',
            collection : 'userLog',
            capped : true
        }),
    ]
});
winston.loggers.add('profileLog',{
    transports : [
        new(winston.transports.MongoDB)({
            db : 'mongodb://username:password.mongolab.com:5555/log_db',                collection : 'profileLog',
            capped : true
        }),
    ]
});

And it works fine with no observable latency.

P.S. You can add all the options you want after or before capped:true

Have fun!

查看更多
登录 后发表回答