4.1.0 • Published 7 months ago

@qiwi/nestjs-enterprise-logger v4.1.0

Weekly downloads
8
License
MIT
Repository
github
Last release
7 months ago

@qiwi/nestjs-enterprise-logger

Nestjs module for logging based on winston

Installation

Following packages should be installed before

yarn add @qiwi/nestjs-enterprise-logger

Configuration

Import

import { 
  LoggerModule,
  createMetaPipe,
  maskerLoggerPipeFactory,
 } from '@qiwi/nestjs-enterprise-logger'

@Module({
  imports: [
    ConfigModule,
    LoggerModule.register(createMetaPipe(), maskerLoggerPipeFactory()),
    // and so on
  ]
})

export class AppModule {}

Usage

  @Injectable()
  class MyService {
    constructor(@Inject('ILogger') private logger: ILogger) {}
    myError() {
      this.logger.error('foo')
    }
    myInfo() {
      this.logger.info('foo')
    }

  }

For createMetaPipe

import {
  logger as log,
} from '@qiwi/nestjs-enterprise-logger'

async function bootstrap() {
  const app = await NestFactory.create(AppModule)
  const logger = app.get('ILogger')
  app
    .use(log({ logger }))
    .useLogger(logger)

 //...
 logger.info()

Customization

You can inject functions of type TLoggerPipe as your own pipes when create LoggerService or register LoggerModule. Your pipes will be inserted in the following order:

  • mdc pipe from @qiwi/logwrap;
  • app pipe (adds app name, app version and os info to log entry);
  • your own pipe;
  • ...
  • your own pipe;
  • logger pipe (prints log entry).

API

Class LoggerModule

Exports LoggerService with token ILogger

register (...pipes: TLoggerPipe[]): DynamicModule

Class LoggerService

constructor(pipeline: TLoggerPipe[], config: IConfig)

push(entry: ILogEntry): void

fieldtypedescription
LogEntry.metaRecord<string, any>Metadata
LogEntry.levelERROR | WARN | INFO | DEBUG | TRACELog level
LogEntry.inputany[]Data

trace(...data: any[]): void

debug(...data: any[]): void

info(...data: any[]): void

warn(...data: any[]): void

error(...data: any[]): void

Function createMetaPipe = () => (entry: ILogEntry): ILogEntry

Creates pipe for metadata injection, used with @qiwi-private/js-platform-mdc-nestjs

Function maskerLoggerPipeFactory = () => (entry: ILogEntry): ILogEntry

Creates pipe for pan masking

Function masker = (input: string | number): string

Masks pans

Docs

3.0.0

9 months ago

4.1.0

7 months ago

4.0.1

8 months ago

4.0.0

8 months ago

4.0.2

8 months ago

2.0.5

12 months ago

2.0.4

1 year ago

2.0.3

1 year ago

2.0.2

2 years ago

1.6.1

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.6.0

2 years ago

1.5.6

3 years ago

1.5.5

3 years ago

1.5.4

3 years ago

1.5.3

3 years ago

1.5.2

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.2

3 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago