4.0.12 • Published 1 year ago

@rentspree/express-elasticsearch-logger v4.0.12

Weekly downloads
46
License
-
Repository
github
Last release
1 year ago

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

Log Express app requests to ElasticSearch.

Installation

Install using npm:

npm install @rentspree/express-elasticsearch-logger

API Reference

@rentspree/express-elasticsearch-logger

express-elasticsearch-logger.doc : Object

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

Kind: static constant of express-elasticsearch-logger
Properties

NameTypeDescription
envStringdefaults to "development"
errorErrorerror object passed to next()
durationNumbermilliseconds between request and response
requestObjectrequst object detail of express
request.httpVersionString
request.headersObject
request.methodString
request.originalUrlString
request.route.pathString
request.pathString
request.queryObject
responseObject
response.statusCodeNumber
osObject
os.totalmemNumberOS total memory in bytes
os.freememNumberOS free memory in bytes
os.loadavgArray.<Number>Array of 5, 10, and 15 min averages
processObject
process.memoryUsageNumberprocess memory in bytes
@timestampStringISO time of request

express-elasticsearch-logger.requestHandler(config, client) ⇒ elasticsearchLoggerMiddleware

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.

Kind: static method of express-elasticsearch-logger
Returns: elasticsearchLoggerMiddleware - express middleware

ParamTypeDefaultDescription
configObjectelasticsearch configuration
config.hostString"http://localhost:9200"elasticsearch host to connect
config.indexString"log_YYYY-h1|2"elasticsearch index (default: log_YYYY-h1 or log_YYYY-h2 as bi-annually)
config.whitelistObject
config.whitelist.requestArray.<String>"userId","body","email","httpVersion","headers","method","originalUrl","path","query"request properties to log
config.whitelist.responseArray.<String>"statusCode", "sent", "took"response properties to log
config.censorArray.<String>"password"list of request body properties to censor
config.includeDefaultBooleantrueinclude default whitelist and censor the the given config
config.indexPrefixString"log"elasticsearch index prefix for running index
config.indexSuffixByString"halfYear"elasticsearch index suffix for running index, one of m M month (Monthly) q Q quarter (Quarterly) h H halfYear (Bi-annually)
config.indexSettingsObject{index: { number_of_shards: "3", number_of_replicas: "2", refresh_interval: "60s", analysis: { normalizer: { lowercase: { type: "custom", char_filter: [], filter: "lowercase", }, }, }, },}settings in the mapping to be created
clientelasticsearch.Client@elastic/elasticsearch client to be injected

Example

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

const app = express();

app
  .use(logger.requestHandler({
    host: 'http://localhost:9200'
  })
  .get('/', function (req, res, next) {
    res.sendStatus(204);
  })
  .use(logger.errorHandler);

express-elasticsearch-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.

Kind: static method of express-elasticsearch-logger

ParamType
errError
reqexpress.Request
resexpress.Response
nextexpress.Request.next

express-elasticsearch-logger.skipLog(req, res, next)

This middleware will mark for skip log use this middleware for endpoint that is called too often and did not need to log like healthcheck

Kind: static method of express-elasticsearch-logger

ParamType
reqexpress.Request
resexpress.Response
nextexpress.Request.next

Contributing

Please submit all issues and pull requests to the alexmingoia/express-elasticsearch-logger repository!

Tests

Run tests using npm test.

Support

If you have any problem or suggestion please open an issue here.

4.0.9-rc.0

1 year ago

4.0.10-rc.0

1 year ago

4.0.10-rc.2

1 year ago

4.0.10-rc.1

1 year ago

4.0.10

1 year ago

4.0.11-rc.0

1 year ago

4.0.12

1 year ago

4.0.11

1 year ago

4.0.9-rc.1

1 year ago

4.0.9

3 years ago

4.0.8

4 years ago

4.0.7

4 years ago

4.0.6

4 years ago

4.0.5

4 years ago

4.0.4

4 years ago

4.0.3

4 years ago

4.0.2

4 years ago

4.0.1

4 years ago

4.0.0

4 years ago

3.0.5

5 years ago

3.0.4

5 years ago

3.0.3

6 years ago

3.0.2

6 years ago

3.0.1

6 years ago

3.0.0

6 years ago

2.1.1

6 years ago