Skip to content

nemanjapetrovic/mongoose-morgan

Repository files navigation

mongoose-morgan

dependencies Status devDependencies Status Known Vulnerabilities

NPM

Is npm package which combines mongoose and morgan packages by adding additional functionality to log morgan data into a MongoDB database.

Install

To install this package just run:

npm install mongoose-morgan

Basic usage example

Here is an example of using mongoose-morgan together with the express app:

// express
var express = require('express');
var app = express();

// mongoose-morgan
var morgan = require('mongoose-morgan');

// connection-data
var port = process.env.port || 8080;

// Logger
app.use(morgan({
    connectionString: 'mongodb://localhost:27017/logs-db'
}));

// run
app.listen(port);
console.log('works... ' + port);

The example from the above will create inside logs-db database collection called logs and will store data inside it.

Detailed usage

mongoose-morgan accepts three parameters:

  • mongoData : object type with next properties
    • required {string} connectionString
    • optional {string} collection
    • optional {string} user
    • optional {string} pass
    • optional {bool} capped (pull req by @Ni55aN)
    • optional {int} cappedSize (pull req by @Ni55aN)
    • optional {int} cappedMax (pull req by @Ni55aN)
    • optional {string} dbName (pull req by @pmstss)
    • optional {bool} useNewUrlParser (default: true)
    • optional {bool} useUnifiedTopology (default: true) (issue #8)
  • options : object type - standard morgan options
  • format : string type - standard morgan format

Example without morgan options:

app.use(morgan({
    connectionString: 'mongodb://localhost:27017/logs-db'
   }, {}, 'short'
));

Full example:

app.use(morgan({
    collection: 'error_logger',
    connectionString: 'mongodb://localhost:27017/logs-db',
    user: 'admin',
    pass: 'test12345'
   },
   {
    skip: function (req, res) {
        return res.statusCode < 400;
    }
   },
   'dev'
));

The code above will log data in dev format and will skip logging if the response status code is less than 400. Data will be stored in logs-db database in error_logger collection.

Feel free to contribute by forking this repository, making changes, and submitting pull requests. For any questions or advice create an issue in this repository.

License

MIT