nestjs-http-logger
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

NestJS HTTP Logger

npm license

A NestJS middleware, designed to facilitate logging of HTTP requests and responses, providing an efficient and straightforward way in debugging and monitoring network activity.

Logs

Installation

npm install nestjs-http-logger

Usage

After installation, the LoggerMiddleware can be imported and applied in the AppModule or any other module. It can be configured to log all routes ('*') or specific ones, offering flexibility based on the developer's requirements.

Example configuration in AppModule:

import { LoggerMiddleware } from 'nestjs-http-logger'';

@Module()
export class AppModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(LoggerMiddleware).forRoutes('*');
  }
}

excludeFromRequest

excludeFromRequest method allows you to specify which parts of the HTTP request should not be logged.

Available Options:

params: parameters from the route path
query: key-value pairs in the URL after "?"
body: content sent in POST/PUT requests
headers: meta-info including authorization credentials
cookies: data stored on the client for session tracking
ip: client's IP address, identified by the server

Example of excluding headers from logging:

import { LoggerMiddleware } from 'nestjs-http-logger'';

@Module()
export class AppModule {
  configure(consumer: MiddlewareConsumer) {
    // Call 'excludeFromRequest' before 'consumer.apply'
    LoggerMiddleware.excludeFromRequest({ headers: true });
    consumer.apply(LoggerMiddleware).forRoutes('*');
  }
}

Recommendation

In a production environment, consider excluding sensitive parts of the request such as the body, headers, and cookies from logging, as they may contain personal information, passwords, authentication tokens, session cookies, and more.

import { LoggerMiddleware } from 'nestjs-http-logger'';

@Module()
export class AppModule {
  configure(consumer: MiddlewareConsumer) {
    const isProduction = process.env.NODE_ENV === 'production';
    LoggerMiddleware.excludeFromRequest({
      body: isProduction,
      headers: isProduction,
      cookies: isProduction,
    });
    consumer.apply(LoggerMiddleware).forRoutes('*');
  }
}

Author

Vladyslav Braslavskyi GitHub

License

Licensed under the MIT License - see the LICENSE file for details.

Package Sidebar

Install

npm i nestjs-http-logger

Weekly Downloads

58

Version

1.1.1

License

MIT

Unpacked Size

8.28 kB

Total Files

7

Last publish

Collaborators

  • vlbras