2.1.2 • Published 3 years ago

bunyan-express-common-log-format v2.1.2

Weekly downloads
35
License
MIT
Repository
github
Last release
3 years ago

bunyan-express-common-log-format

Build Status Coverage Status semantic-release

Bunyan Common Log Format serializer for ExpressJS applications.


Setup

Installation

Install this package through npm:

$ npm i -S bunyan-express-common-log-format

Adding the serializer

Add the formatter as a serializer to the bunyan configuration:

const bunyan = require('bunyan');
const bunyanExpressCommonLogFormat = require('bunyan-express-common-log-format');

const logger = bunyan.createLogger({
  serializers: { apiCall: bunyanExpressCommonLogFormat },
  // other bunyan configuration here
});

module.exports = logger;

Usage

Once the formatter is installed and the serializer is set-up, use it with a normal log call, using the key used during bunyan setup (apiCall in the example):

Basic usage

const express = require('express');
const logger = require('./shared/logger');

const app = express();

// remember to call `next()` in each route to get to the middleware
app.get(/* ... */);
app.get(/* ... */);

// define the logging middleware
app.use((request, response, next) => {
  logger.info({ apiCall: { request, response } }, 'Express API Call');
  next();
});

Overrides

The serializer will do it's best to extract the necessary information from the given request and response objects, except for authUser and ident, which are currently not extracted. All fields can be overridden with custom values. Pass an overrides object to override any field. The available fields are:

FieldTypeDescription
authUserstringThe userid of the person requesting the resource
contentLengthstringThe size of the object returned to the client, in bytes
datedateThe date, time and timezone of the response
hoststringThe host that requested the resource
httpVersionstringThe HTTP Protocol used
identstringThe https://tools.ietf.org/html/rfc1413(RFC 1413) identity of the client
methodstringThe request method used to request the resource
statusCodestringThe HTTP status code returned to the client
urlstringThe URL requested by the client

This is implemented as follows:

// define the logging middleware
app.use((request, response, next) => {
  logger.info(
    { apiCall: { overrides: { authUser: 'hvolschenk' }, request, response } },
    'Express API Call',
  );
  next();
});

Settings

Pass a settings object to change settings of the serializer. The available settings are:

NameTypeDescription
dateFormatstringThe date format to use, please see the dateformat package for options

This is implemented as follows:

// define the logging middleware
app.use((request, response, next) => {
  logger.info(
    { apiCall: { request, response, settings: { dateFormat: 'mmmm dS, yyyy, h:MM:ss TT' } } },
    'Express API Call',
  );
  next();
});
2.1.2

3 years ago

2.1.1

3 years ago

2.1.0

4 years ago

2.0.5

4 years ago

2.0.4

5 years ago

2.0.3

5 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago