为什么 Pino logger.debug 在 NestJS 中不起作用

问题描述 投票:0回答:1

当我使用 pino logger.debug() 时,它不会记录任何内容。我的配置和使用如下。包nestjs-pino

app.module.ts

import { Module } from '@nestjs/common';
import { LoggerModule } from 'nestjs-pino';
import pino from 'pino';
import { ConfigModule } from '@nestjs/config';
import configuration from './config/configuration';

const pinoPretty: pino.TransportSingleOptions = {
  target: 'pino-pretty',
  options: {
    singleLine: true,
    translateTime: 'yyyy-dd-mm, h:MM:ss TT'
  }
};

const file: pino.TransportSingleOptions = {
  target: 'pino/file',
  options: { destination: `./logs/combined.log` }
};

const targets = [pinoPretty, file];

@Module({
  imports: [
    LoggerModule.forRoot({
      pinoHttp: {
        autoLogging: false,
        level: 'debug',
        transport: { targets }
      }
    }),
    ConfigModule.forRoot({
      isGlobal: true,
      load: [configuration],
      cache: true
    })
  ]
})
export class AppModule {}
main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ValidationPipe } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import * as cookieParser from 'cookie-parser';
import { Logger, LoggerErrorInterceptor } from 'nestjs-pino';

async function bootstrap() {
  const app = await NestFactory.create(AppModule, { bufferLogs: true });
  app.useGlobalPipes(new ValidationPipe({ forbidUnknownValues: true, whitelist: true }));
  app.use(cookieParser());
  app.useLogger(app.get(Logger));

  const config = app.get<ConfigService>(ConfigService);

  await app.listen(config.get<number>('port') || 4000);
}
bootstrap();

我如何使用它

import { Logger, Provider } from '@nestjs/common';

function () {
  const logger = new Logger('Redis');
  logger.debug('Redis client warming up');
}

经过调查,我发现调试日志实际上是在下图的数据中呈现的。但是当 Atomic.store 执行并且日志出现在控制台中时 - 调试不存在

nestjs pinojs pino
1个回答
0
投票

我面临着同样的问题,您需要为每个目标指定一个级别。

我的配置示例:

这将为您带来以下结果:

const pinoPretty: pino.TransportSingleOptions = {
    level: 'debug',
    target: 'pino-pretty',
    options: {
        singleLine: true,
        translateTime: 'yyyy-dd-mm, h:MM:ss TT'
    }
};

const file: pino.TransportSingleOptions = {
    level: 'debug',
    target: 'pino/file',
    options: { destination: `./logs/combined.log` }
};
© www.soinside.com 2019 - 2024. All rights reserved.