Log Express app requests to ElasticSearch.
Install using npm:
npm install express-elasticsearch-logger
Members
##logger.request
Document indexed with ElasticSearch. request
and response
properties
are included if they are whitelisted by config.whitelist
.
Properties
- env
String
- defaults to "development" - error
Error
- error object passed tonext()
- duration
Number
- milliseconds between request and response - request
Object
- request.httpVersion
String
- request.headers
Object
- request.method
String
- request.originalUrl
String
- request.route.path
String
- request.path
String
- request.query
Object
- request.httpVersion
- response
Object
- response.statusCode
Number
- response.statusCode
- os
Object
- os.totalmem
Number
- OS total memory in bytes - os.freemem
Number
- OS free memory in bytes - os.loadavg
Array.<Number>
- Array of 5, 10, and 15 min averages
- os.totalmem
- process
Object
- process.memoryUsage
Number
- process memory in bytes
- process.memoryUsage
- @timestamp
String
- ISO time of request
Type: Object
##logger.requestHandler(config, [client])
Returns Express middleware configured according to given options
.
Middleware must be mounted before all other middleware to ensure accurate capture of requests. The error handler must be mounted before other error handler middleware.
Params
- config
Object
- elasticsearch configuration- [index]
String
- elasticsearch index (default: log_YEAR_MONTH) - [type]
String
- elasticsearch request type (default: request) - whitelist
Object
- request
Array.<String>
- request properties to log - response
Array.<String>
- response properties to log
- request
- censor
Array.<String>
- list of request body properties to censor
- [index]
- [client]
elasticsearch.Client
- elasticsearch client
Returns: elasticsearchLoggerMiddleware
- express middleware
Example
var express = require('express');
var logger = require('express-elasticsearch-logger');
var app = express();
app
.use(logger.requestHandler({
host: 'http://localhost:9200'
}))
.get('/', function (req, res, next) {
res.sendStatus(204);
})
.use(logger.errorHandler)
.listen(8888);
##logger.errorHandler(err, req, res, next)
Error handler middleware exposes error to Response#end
This middleware is used in combination with requestHandler to capture request errors.
Params
- err
Error
- req
express.Request
- res
express.Response
- next
express.Request.next
Please submit all issues and pull requests to the alexmingoia/express-elasticsearch-logger repository!
List available tasks with gulp help
.
Run tests using npm test
or gulp test
.
If you have any problem or suggestion please open an issue here.