@geekcups/winston-transport-mongodb
v1.0.1
Published
MongoDB Transport with split options
Downloads
1
Readme
winston
A MongoDB transport for [winston][0].
Current version supports only mongodb driver version 3.x and winston 3.x.
Usage
const { MongoDBTransport, LogSplitEnum } = require('@geekcups/winston-transport-mongodb');
const mongoTransport = new MongoDBTransport({
db: dbUrl,
dbOptions: {
poolSize: 3,
useNewUrlParser: true,
useUnifiedTopology: true,
},
logSplit: LogSplitEnum.DAY,
});
const logger = winston.createLogger({
level: 'info',
transports: [
mongoTransport,
]
});
name?: string, db: string | MongoClient dbOptions?: MongoClientOptions metaCollectionName?: string logCollectionPrefix?: string additionalLogIndexes?: IndexSpecification[] logSplit?: LogSplitEnum | number,
The MongoDB transport takes the following options. 'db' is required:
- db: MongoDB connection uri or pre-connected
MongoClient
. - options: MongoDB connection parameters (optional, defaults to
{poolSize: 2, autoReconnect: true, useNewUrlParser: true}
). - metaCollectionName: The name of the meta collection that contain the split information, defaults to 'meta'.
- name: Transport instance identifier. Useful if you need to create multiple MongoDB transports.
- logCollectionPrefix: Prefix name for log collections, defaults to 'log'.
- additionalLogIndexes: MongoDB IndexSpecification array for additional log collection indexes (usefull if you need to index meta fields).
- logSplit: Strategy for split log collection. You can split for default enums (LogSplitEnum.NONE, LogSplitEnum.DAY, LogSplitEnum.MONTH, LogSplitEnum.YEAR) or with number of milliseconds. The transport create a new log collection when a new log entry exceeds the logSplit time
Metadata: Logged as a native JSON object in 'meta' property.
Querying
Besides supporting the main options from winston, this transport supports the following extra options:
- from: Start date of query. Can be null.
- to: End date of query. Can be null.
- query: Extra query for log collection. For example you can query for meta field here. If you specify from and to you don't need to specify timestamp query here.
Installation
$ npm install winston
$ npm install mongodb
$ npm install @geekcups/winston-transport-mongodb