bole-mongodb
MongoDB stream for the bole logger
Plugin for the bole logger. Saves the logs to a MongoDB collection, log
by default.
var bole = require('bole');
var boleMongo = require('bole-mongodb');
MongoClient.connect(url, function (err, db) {
if (err) return console.error(err);
var boleMongoStream = boleMongo({ db: db, capped: true })
.on('error', console.error);
bole.output([
{ level: 'error', stream: boleMongoStream }
]);
var log = bole('my-module');
});
The Db
object is required. Instead of opening a new connection from inside the plugin, the user is responsible for the connection's lifecycle. Therefore, this plugin assumes that the connection is already open. However, it won't fail if it's not.
MongoDB has the concept of a Capped collection and it can be used for logging purposes. This plugin tries to create a capped collection each time a message is logged. Therefore, it's not required to have the connection open at the time of registering the plugin.
module(options) : Writable
Returns a new Writable stream instance.
Options:
- db - Object
MongoDB Db
instance. This option is mandatory. - collection - String
Name of the collection. Default logs
. - capped - Boolean
If the collection doesn't exist, creates a new capped collection. Default false
. - size - Number
Size in bytes of the capped collection. Default 10000000
(10MB rounded up to the nearest multiple of 256). - max - Number
Maximum number of documents allowed in the capped collection. Default undefined
. - force - Boolean
If the collection already exists, it is converted into a capped collection. Default false
.