Log requests to ElasticSearch.
Failed to load latest commit information.
lib Use deep merge for defaults. Jun 2, 2016
test Censor provided request body properties. Jan 26, 2015
.editorconfig 1.0.0 Jan 1, 2015
.gitignore 1.0.0 Jan 1, 2015
.jscsrc 1.0.0 Jan 1, 2015
.jshintrc 1.0.0 Jan 1, 2015
.travis.yml Correct coveralls repo token. Jan 1, 2015
LICENSE 1.0.0 Jan 1, 2015
README.md Example fixed. May 31, 2016
gulpfile.js 1.0.0 Jan 1, 2015
package.json 2.1.0 Jun 2, 2016


express-elasticsearch-logger Build Status Code Coverage NPM version Dependency Status

Log Express app requests to ElasticSearch.


Install using npm:

npm install express-elasticsearch-logger

API Reference


##logger.request Document indexed with ElasticSearch. request and response properties are included if they are whitelisted by config.whitelist.


  • env String - defaults to "development"
  • error Error - error object passed to next()
  • 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
  • response Object
    • response.statusCode Number
  • 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
  • process Object
    • process.memoryUsage Number - process memory in bytes
  • @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.


  • 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
    • censor Array.<String> - list of request body properties to censor
  • [client] elasticsearch.Client - elasticsearch client

Returns: elasticsearchLoggerMiddleware - express middleware

var express = require('express');
var logger = require('express-elasticsearch-logger');

var app = express();

    host: 'http://localhost:9200'
  .get('/', function (req, res, next) {

##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.


  • 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.