Socket
Socket
Sign inDemoInstall

@innova2/winston-mongodb

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@innova2/winston-mongodb

A MongoDB transport for winston


Version published
Maintainers
2
Created
Source

winston-mongodb

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.

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

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:

OptionDescription
dbREQUIRED. MongoDB connection uri, pre-connected MongoClient object or promise which resolves to a pre-connected MongoClient object.
dbnameThe database name to connect to, defaults to DB name based on connection URI if not provided, ignored if using a pre-connected connection.
optionsMongoDB connection parameters.
Defaults to {poolSize: 2, autoReconnect: true, useNewUrlParser: true}).
collectionThe name of the collection you want to store log messages in.
Defaults to log.
levelLevel of messages that this transport should log.
Defaults to info.
silentBoolean flag indicating whether to suppress output.
Defaults to false.
storeHostBoolean 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.
labelIf set to true, then label attribute content will be stored in label field, if detected in meta-data.
nameTransport instance identifier. Useful if you need to create multiple MongoDB transports.
cappedIn case this property is true, winston-mongodb will try to create new log collection as capped.
Defaults to false.
cappedSizeSize of logs capped collection in bytes.
Defaults to 10,000,000.
cappedMaxSize of logs capped collection in number of documents.
tryReconnectWill try to reconnect to the database in case of fail during initialization. Works only if db is a string.
Defaults to false.
decolorizeWill remove color attributes from the log entry message.
Defaults to false.
leaveConnectionOpenWill leave MongoClient connected after transport shuts down.
metaKeyConfigure 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
expireAfterSecondsSeconds 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.

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

Changelog

Author: Charlie Robbins
Contributors: Yurij Mikhalevich, Kendrick Taylor, Yosef Dinerstein, Steve Dalby

Keywords

FAQs

Package last updated on 19 Nov 2023

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc