Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
winston-mongodb
Advanced tools
A MongoDB transport for winston.
Current version supports only mongodb driver version 3.x and newer and winston 3.x and newer. 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.
const winston = require('winston');
// Requiring `winston-mongodb` will expose winston.transports.MongoDB`
require('winston-mongodb');
const log = winston.createLogger({
level: 'info',
transports: [
// write errors to console too
new winston.transports.Console({format: winston.format.simple(), level:'error'})
],
});
// logging to console so far
log.info('Connecting to database...');
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/mydb";
const client = new MongoClient(url);
await client.connect();
const transportOptions = {
db: await Promise.resolve(client),
collection: 'log'
};
log.add(new winston.transports.MongoDB(transportOptions));
// following entry should appear in log collection and will contain
// metadata JSON-property containing url field
log.info('Connected to database.',{url});
The MongoDB transport takes the following options. Only option db
is required:
Option | Description |
---|---|
db | REQUIRED. MongoDB connection uri, pre-connected MongoClient object or promise which resolves to a pre-connected MongoClient object. |
dbname | The database name to connect to, defaults to DB name based on connection URI if not provided, ignored if using a pre-connected connection. |
options | MongoDB connection parameters. Defaults to {maxPoolSize: 2} ). |
collection | The name of the collection you want to store log messages in. Defaults to log . |
level | Level of messages that this transport should log. Defaults to info . |
silent | Boolean flag indicating whether to suppress output. Defaults to false . |
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 | If set to true, then label attribute content will be stored in label field, if detected in meta-data. |
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 10,000,000. |
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 shuts down. |
metaKey | Configure name of the field which 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. |
Logging unhandled exceptions: For logging unhandled exceptions specify
winston-mongodb as handleExceptions
logger according to winston documentation.
Besides supporting the main options from winston, this transport supports the following extra options:
_id
attribute
settled by mongodb, defaults to false
. $ npm install winston
$ npm install winston-mongodb
FAQs
A MongoDB transport for winston
The npm package winston-mongodb receives a total of 35,586 weekly downloads. As such, winston-mongodb popularity was classified as popular.
We found that winston-mongodb demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.