当我使用 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 执行并且日志出现在控制台中时 - 调试不存在
我面临着同样的问题,您需要为每个目标指定一个级别。
我的配置示例:
这将为您带来以下结果:
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` }
};