@rentspree/express-elasticsearch-logger v4.0.12
express-elasticsearch-logger
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
- .requestHandler(config, [client]) ⇒ elasticsearchLoggerMiddleware
- .errorHandler(err, req, res, next)
- .skipLog(req, res, next)
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
Name | Type | Description |
---|---|---|
env | String | defaults to "development" |
error | Error | error object passed to next() |
duration | Number | milliseconds between request and response |
request | Object | requst object detail of express |
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 |
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
Param | Type | Default | Description |
---|---|---|---|
config | Object | elasticsearch configuration | |
config.host | String | "http://localhost:9200" | elasticsearch host to connect |
config.index | String | "log_YYYY-h1|2" | elasticsearch index (default: log_YYYY-h1 or log_YYYY-h2 as bi-annually) |
config.whitelist | Object | ||
config.whitelist.request | Array.<String> | "userId","body","email","httpVersion","headers","method","originalUrl","path","query" | request properties to log |
config.whitelist.response | Array.<String> | "statusCode", "sent", "took" | response properties to log |
config.censor | Array.<String> | "password" | list of request body properties to censor |
config.includeDefault | Boolean | true | include default whitelist and censor the the given config |
config.indexPrefix | String | "log" | elasticsearch index prefix for running index |
config.indexSuffixBy | String | "halfYear" | elasticsearch index suffix for running index, one of m M month (Monthly) q Q quarter (Quarterly) h H halfYear (Bi-annually) |
config.indexSettings | Object | {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 |
client | elasticsearch.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);
- .requestHandler(config, [client]) ⇒ elasticsearchLoggerMiddleware
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
Param | Type |
---|---|
err | Error |
req | express.Request |
res | express.Response |
next | express.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
Param | Type |
---|---|
req | express.Request |
res | express.Response |
next | express.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.
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago