@yunnysunny/request-logging
TypeScript icon, indicating that this package has built-in type declarations

0.15.1 • Public • Published

request-logging

Print the express request log to console and save it to kafka and mongodb when required, and even can send alram message when the response code greater than 500.

npm version build status David deps Test coverage node version

Installation

npm install @yunnysunny/request-logging --save

Usage

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const requestLog = require('@yunnysunny/request-logging');

const app = express();
app.enable('trust proxy');

// view engine setup
app.set('port', port);
app.use(requestLog());

app.use(bodyParser.json({limit: '1mb'}));
app.use(bodyParser.urlencoded({
    extended: false,
    limit: '1mb'
}));

API

See api document.

Fields

If you want to save request logging to mongodb, this is the fields description, which you will used to create a mongoose schema:

name type description
hostname String The domain of current server.
original_url String The original url contains query string.
path String The request path doesn't contain query string.
user_agent String The user agent.
custom_headers Object The specific you wanna save.
method String The http request method.
ip String The client's ip.
host String The server's ip.
duration Number The millisecond the request costed.
pid Number The server's process id.
req_id Number The inner request number, auto increased when new request come.
content_length_req Number The content-length of the request headers.
content_length Number The content-length of the response headers.
status_code Number The status code of current HTTP response.
res_code Number The inner response code, which will be got from the response header of res-code.
res_data Object The reponse data.
req_time Number The timestamp of begin time of current request occured.
req_time_string String The time of begin time, formated in ISO 8601 Extended Format.
req_data Object The request data, which would form query string or form data.
referer String The HTTP referer header.
session Object The session of current request.
aborted Boolean Whether the request has aborted.

We suggest you use such mongoose schema, which is compatible when the fields is changed:

const {Schema} = require('mongoose');

const requestLogSchema =  new Schema({
    req_time: Date
},{ 
    timestamps: {
        createdAt: 'created_at',
        updatedAt : 'updated_at'
    },
    strict: false
});
module.exports = requestLogSchema;

License

MIT

Package Sidebar

Install

npm i @yunnysunny/request-logging

Weekly Downloads

1

Version

0.15.1

License

MIT

Unpacked Size

56.2 kB

Total Files

47

Last publish

Collaborators

  • whyun-master