Code Monkey home page Code Monkey logo

koa-request-log's Introduction

Koa request logger NPM version

Simple middleware for Koa 2 to log in and out request, with diff time, and custom logger.

Install

npm install --save koa-request-logger

Usage

const Koa = require('Koa');
const koaRequestLogger = require('koa-request-logger');

const app = new Koa();
app.use(koaRequestLogger());

app.listen(3000);

Options

You can customize :

  • logger, the logger object, by default console
  • method, the logger method, by default log
  • format, the output format function for IN and OUT request which takes params:
    • ctx: the koa context of the request
    • id: an unique ID to match in/out with easy
    • isIn: true if IN request, else false,
    • timeDiff: diff time for OUT requests (null for IN requests)

Example with winston as logger and custom log format

const Koa = require('Koa');
const koaRequestLogger = require('koa-request-logger');
const winston = require('winston');

const logger = new (winston.Logger)({
  transports: [
    new (winston.transports.Console)(),
    new (winston.transports.File)({ filename: 'somefile.log' })
  ]
});

const app = new Koa();
app.use(koaRequestLogger({
  logger,
  method: 'info',
  format: (ctx, id, isIn = true, timeDiff = null) => (isIn ?
    `Incoming request #${id}: method ${ctx.request.method}, url ${ctx.request.url}` :
    `Sending request results #${id}: method ${ctx.request.method}, url ${ctx.request.url}, status: ${ctx.status}, duration: ${timeDiff}ms`);
}));

app.listen(3000);

License

MIT

koa-request-log's People

Contributors

mrchief avatar tilap avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

mrchief madole

koa-request-log's Issues

Logging request body.

I'm sure this question is not specific to your library but is rather due to my lack of knowlege of both koa and/or node. But maybe you could help anyway.

Is it possible to log the request body as well?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.