0.7.1 • Published 4 years ago

@dimensionfourcloud/logger v0.7.1

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

NestCloud - Logger

Description

The logger module for dimensionfourcloud.

中文文档

Installation

$ npm i --save @dimensionfourcloud/logger

Quick Start

import { NestFactory } from '@nestjs/core'
import { Injectable } from '@nestjs/core';
import { NestLogger, Logger } from '@dimensionfourcloud/logger';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule, { 
      logger: new NestLogger({path: __dirname, filename: 'logger.yml'})
  });
}

Configurations

logger:
  level: info
  transports:
    - transport: console
      level: debug
      colorize: true
      datePattern: YYYY-MM-DD h:mm:ss
      label: user-service
    - transport: file
      name: info
      filename: info.log
      datePattern: YYYY-MM-DD h:mm:ss
      label: user-service
      # 100M
      maxSize: 104857600
      json: false
      maxFiles: 10
    - transport: dailyRotateFile
      filename: info.log
      datePattern: YYYY-MM-DD-HH
      zippedArchive: true
      maxSize: 20m
      maxFiles: 14d

Usage

Inject logger instance

import { Module } from '@nestjs/common';
import { LoggerModule, Logger } from '@dimensionfourcloud/logger';

@Module({
  imports: [
      LoggerModule.register()
  ],
})
export class ApplicationModule {}
import { Injectable, Logger } from '@nestjs/common';
import { InjectLogger, Logger } from '@dimensionfourcloud/logger';

@Injectable()
export class TestService {
  constructor(@InjectLogger() private readonly logger: Logger) {}

  log() {
      this.logger.info('The first log');
  }
}

Custom Typeorm Logger

import { Module, NEST_TYPEORM_LOGGER_PROVIDER } from '@nestjs/common';
import { TypeormLogger } from '@dimensionfourcloud/logger';
import { TypeOrmModule } from '@nestjs/typeorm';

@Module({
  imports: [
      TypeOrmModule.forRootAsync({
          useFactory: (logger: TypeormLogger) => ({
              /* ... */
              logger,
          }),
          inject: [NEST_TYPEORM_LOGGER_PROVIDER],
      })
  ],
})
export class ApplicationModule {}

Stay in touch

License

NestCloud is MIT licensed.