Skip to content

Instantly share code, notes, and snippets.

@cyril-lakech
Created August 30, 2018 16:14
Show Gist options
  • Save cyril-lakech/4c00f9acefb87cb691dac14924287dbd to your computer and use it in GitHub Desktop.
Save cyril-lakech/4c00f9acefb87cb691dac14924287dbd to your computer and use it in GitHub Desktop.
Simplest Morgan NestJS Middleware
import { Injectable, MiddlewareFunction, NestMiddleware } from '@nestjs/common';
import * as morgan from 'morgan';
import { LoggerService } from './mylogger';
@Injectable()
export class MorganMiddleware implements NestMiddleware {
constructor(private readonly logger: LoggerService) {}
resolve(): MiddlewareFunction {
return morgan('combined', {
stream: { write: str => this.logger.info(str) },
});
}
}
@carlosfernandezcabrero
Copy link

HI 👋,

I do this:

import { Injectable, Logger, NestMiddleware } from '@nestjs/common'
import * as morgan from 'morgan'

@Injectable()
export class HttpLoggerMiddleware implements NestMiddleware {
  private readonly logger = new Logger(HttpLoggerMiddleware.name)

  use(req: any, res: any, next: () => void) {
    morgan(process.env.NODE_ENV === 'production' ? 'common' : 'dev', {
      stream: {
        write: (message) => this.logger.log(message)
      }
    })(req, res, next)
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment