Is npm package which combines mongoose and morgan packages by adding additional functionality to log morgan data into a MongoDB database.
To install this package just run:
npm install mongoose-morgan
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("combined", {
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.
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("combined",
{
connectionString: 'mongodb://localhost:27017/logs-db'
}, {}, 'short'
));
Full example:
app.use(morgan("combined",
{
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.