Skip to content
Branch: master
Clone or download
DABH Merge pull request #159 from allog/master
Fixed decolorize option not applying on "level" property.
Latest commit 37ad841 May 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib Fixed decolorize option not applying on "level" property. May 22, 2019
test useNewUrlParser: true by default Mar 13, 2019
.gitignore Squashed commit for the version 0.4.5: May 24, 2014
.npmignore Squashed commit for the version 0.4.5: May 24, 2014 removed gitter badge Mar 13, 2019
package-lock.json v5.0.0 Mar 13, 2019
package.json v5.0.0 Mar 13, 2019


A MongoDB transport for winston.

Current version supports only mongodb driver version 3.x and winston 3.x. If you want to use winston-mongodb with mongodb version 1.4.x use winston-mongodb <1.x. For mongodb 2.x use winston-mongodb <3.x.


tldr;?: To break the winston codebase into small modules that work together.

The winston codebase has been growing significantly with contributions and other logging transports. This is awesome. However, taking a ton of additional dependencies just to do something simple like logging to the Console and a File is overkill.


  var winston = require('winston');

   * Requiring `winston-mongodb` will expose
   * `winston.transports.MongoDB`

  winston.add(new winston.transports.MongoDB(options));

The MongoDB transport takes the following options. 'db' is required:

  • level: Level of messages that this transport should log, defaults to 'info'.
  • silent: Boolean flag indicating whether to suppress output, defaults to false.
  • db: MongoDB connection uri, pre-connected MongoClient object or promise which resolves to a pre-connected MongoClient object.
  • options: MongoDB connection parameters (optional, defaults to {poolSize: 2, autoReconnect: true, useNewUrlParser: true}).
  • collection: The name of the collection you want to store log messages in, defaults to 'log'.
  • storeHost: Boolean indicating if you want to store machine hostname in logs entry, if set to true it populates MongoDB entry with 'hostname' field, which stores os.hostname() value.
  • label: Label stored with entry object if defined.
  • name: Transport instance identifier. Useful if you need to create multiple MongoDB transports.
  • capped: In case this property is true, winston-mongodb will try to create new log collection as capped, defaults to false.
  • cappedSize: Size of logs capped collection in bytes, defaults to 10000000.
  • cappedMax: Size of logs capped collection in number of documents.
  • tryReconnect: Will try to reconnect to the database in case of fail during initialization. Works only if db is a string. Defaults to false.
  • decolorize: Will remove color attributes from the log entry message, defaults to false.
  • leaveConnectionOpen: Will leave MongoClient connected after transport shut down.
  • metaKey: Configure which key is used to store metadata in the logged info object. Defaults to 'metadata' to remain compatible with the metadata format
  • expireAfterSeconds: Seconds before the entry is removed. Works only if capped is not set.

Metadata: Logged as a native JSON object in 'meta' property.

Logging unhandled exceptions: For logging unhandled exceptions specify winston-mongodb as handleExceptions logger according to winston documentation.

Querying and streaming logs

Besides supporting the main options from winston, this transport supports the following extra options:

  • includeIds: Whether the returned logs should include the _id attribute settled by mongodb, defaults to false.


  $ npm install winston
  $ npm install winston-mongodb


Author: Charlie Robbins

Contributors: Yurij Mikhalevich, Kendrick Taylor, Yosef Dinerstein, Steve Dalby

You can’t perform that action at this time.