Skip to main content

@nestjs-mod/pino

Pino logger for NestJS-mod (Wrapper for https://www.npmjs.com/package/nestjs-pino)

NPM version monthly downloads Telegram Discord

Installation

npm i --save pino-http pino nestjs-pino @nestjs-mod/pino

Modules

LinkCategoryDescription
NestjsPinoLoggerModulesystemPino logger for NestJS-mod (Wrapper for https://www.npmjs.com/package/nestjs-pino)

Modules descriptions

NestjsPinoLoggerModule

Pino logger for NestJS-mod (Wrapper for https://www.npmjs.com/package/nestjs-pino)

Use in NestJS-mod

An example of using forRoot with parameters, you can see the full example here https://github.com/nestjs-mod/nestjs-mod-contrib/tree/master/apps/example-pino-logger.

Passing requestId from the frontend is supported.

import {
DefaultNestApplicationInitializer,
DefaultNestApplicationListener,
bootstrapNestApplication,
} from '@nestjs-mod/common';
import { NestjsPinoLoggerModule } from '@nestjs-mod/pino';

bootstrapNestApplication({
modules: {
system: [
DefaultNestApplicationInitializer.forRoot({ staticConfiguration: { bufferLogs: true } }),
NestjsPinoLoggerModule.forRoot(),
DefaultNestApplicationListener.forRoot({
staticEnvironments: { port: 3000 },
}),
],
},
});

Configuration

KeyDescriptionConstraintsDefaultValue
requestIdHeaderNameHeader name for search requestIdoptionalx-request-id-
excludeOptional parameter for routing. It should implement interface of parameters of NestJS built-in MiddlewareConfigProxy['forRoutes']. @see https://docs.nestjs.com/middleware#applying-middleware It can be used for both disabling automatic req/res logs and removing request context from following logs. It works for all requests by default. If you only need to turn off the automatic request/response logging for some specific (or all) routes but keep request context for app logs use pinoHttp.autoLogging field.optional--
forRoutesOptional parameter for routing. It should implement interface of parameters of NestJS built-in MiddlewareConfigProxy['forRoutes']. @see https://docs.nestjs.com/middleware#applying-middleware It can be used for both disabling automatic req/res logs and removing request context from following logs. It works for all requests by default. If you only need to turn off the automatic request/response logging for some specific (or all) routes but keep request context for app logs use pinoHttp.autoLogging field.optional--
pinoHttpOptional parameters for pino-http module @see https://github.com/pinojs/pino-http#pinohttpopts-streamoptional--
renameContextOptional parameter to change property name context in resulted logs, so logs will be like: {"level":30, ... "RENAME_CONTEXT_VALUE_HERE":"AppController" }optional--
useExistingOptional parameter to skip pino configuration in case you are using FastifyAdapter, and already configure logger in adapter's config. The Pros and cons of this approach are described in the FAQ section of the documentation: @see https://github.com/iamolegga/nestjs-pino#faq.optional--

Back to Top

License

MIT