Skip to content

Commit

Permalink
add a filter function to let users filter out certain log messages
Browse files Browse the repository at this point in the history
  • Loading branch information
iphands authored and tellnes committed May 12, 2017
1 parent 0f15dfb commit cea8b31
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,12 @@ serializer instead of the default one which is using `req.originalUrl` instead.
- A function receiving `req` and `res` as arguments returning an object. The elements in the returned object will be added to the fields in the `request finish` message.
**`filter`** Default: `undefined`
- A function receiving `req` and `res` as arguments returning a boolean.
If this functions return value is truthy it will skip all logging for
this request/response.
**`logName`** Default: `'req_id'`
- The name for the request id in the log output.
Expand Down
1 change: 1 addition & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ interface Params {
requestStart?: boolean
verbose?: boolean
level?: 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'
filter?: { (req: Request, res: Response): boolean }
}
interface ParamsWithLogger extends Params {
logger: Logger
Expand Down
6 changes: 6 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ module.exports = function (options, logger) {
, excludeHeaders = options.excludeHeaders
, requestStart = options.requestStart || false
, verbose = options.verbose || false
, filter = options.filter
, parentRequestSerializer = logger.serializers && logger.serializers.req
, level = options.level || 'info'

Expand Down Expand Up @@ -79,6 +80,9 @@ module.exports = function (options, logger) {
)

return function (req, res, next) {
if (filter && filter(req, res))
return next()

var id = req[propertyName]
|| req.headers[headerNameLower]
|| uuid()
Expand All @@ -97,6 +101,7 @@ module.exports = function (options, logger) {
if (verbose) reqStartData.res = res
req.log[level](reqStartData, 'request start')
}

res.on('finish', function() {
var reqFinishData =
{ res: res
Expand All @@ -113,6 +118,7 @@ module.exports = function (options, logger) {
}
res.log[level](reqFinishData, 'request finish')
})

res.on('close', function () {
res.log.warn(
{ req: req
Expand Down

0 comments on commit cea8b31

Please sign in to comment.