1.1.1 • Published 4 years ago

express-sequelize-logger v1.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

express-sequelize-logger

An Express middleware for logging API requests into database via Sequelize

Install

To install via npm:

npm install --save express-sequelize-logger

or Yarn:

yarn add express-sequelize-logger

Usage

For a simple usage just add middleware to your app:

import express from 'express'
import requestLogger from 'sequelize-express-logger'
import sequelize from '../config/database' // your Sequelize instance here

const app = express();

//...other middlewares
app.use(requestLogger({ sequelize })); 

And that's it. By default, middleware will create table called request_logs (can be changed by option passed) and insert all requests logs there.

Log table columns

nametypedescription
idINTEGERAuto-increment (SERIAL) integer record id (primary key). Can be altered to UUID v4 if isUuidPk option passed
methodVARCHARMethod name (GET/POST/PUT/DELETE etc)
urlTEXTRequest path
headersTEXTRequest headers
bodyTEXTRequest body (can be disabled by logRequestBody option)
response_bodyTEXTResponse body (can be disabled by logResponseBody option)
paramsTEXTURL params
queryTEXTQuery string
status_codeINTEGERRequest status code
timeFLOATRequest time (ms)
request_body_sizeINTEGERSize of request body (bytes)
response_body_sizeINTEGERSize of response body (bytes)

Options

nametyperequireddefault valuedescription
sequelizeObjectYES-Your app sequelize instance. Usually exported from db config file.
tableNameStringrequest_logsLog table name
isUuidPkBooleanfalseIf true, id column (primary key) will be of type UUID(v4)
logRequestBodyBoolean/functiontrueA boolean or function with signature (req) => {}, should return Boolean. Whether to log request bodies.
logResponseBodyBoolean/functiontrueA boolean or function with signature (req) => {}, should return Boolean. Whether to log response bodies.
loggingObject{ enabled: true, logger: console.log }Console logger options
logging.enabledBooleantrue
logging.loggerfunctionconsole.logA function with signature (message) => {}, should return String. For example, you can pass your winston logger method here
shouldThrowErrorBooleanfalseWhether to throw errors from middleware. By default, errors will not be thrown, any errors would be console-logged.

License

MIT