winston
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.
Motivation
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.
Usage
var winston = require('winston');
require('winston-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
.
Installation
$ npm install winston
$ npm install winston-mongodb