2-6:日志

5 阅读1分钟

本章介绍如何在NestJS中实现日志功能。 什么是日志,简单来说就是程序运行时的黑匣子,它按照时间顺序记录了系统内发生的事件,错误,警告以及状态变化。

1.安装

执行命令pnpm add nestjs-pino pino-http pnpm add pino``pnpm add pino-pretty

2.导入

import { LoggerModule } from 'nestjs-pino';

@Module({
  imports: [LoggerModule.forRoot()],
})
class AppModule {}

3.启动app logger

进入main.ts文件,加上代码

import { Logger } from 'nestjs-pino';

app.useLogger(app.get(Logger));

4.对日志做一些简单的配置

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TodosModule } from './todos/todos.module';
import { MikroOrmModule } from '@mikro-orm/nestjs';
import { UserModule } from './user/user.module';
import mikroConfig from '../mikro-orm.config';
import { LoggerModule } from 'nestjs-pino';
@Module({
  imports: [
    TodosModule,
    MikroOrmModule.forRoot(mikroConfig),
    UserModule,
    LoggerModule.forRoot({
      pinoHttp: {
        transport: {
          targets: [
            { target: 'pino-pretty', options: { colorize: true } },
            {
              target: 'pino/file',
              options: { destination: 'logs/app.log', mkdir: true },
            },
          ],
        },
      },
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

这里的配置项可以在src下创建config文件夹,创建pino.ts文件,将配置项剥离:

``ts export const pinoConfig = { transport: { targets: [ { target: 'pino-pretty', options: { colorize: true } }, { target: 'pino/file', options: { destination: 'logs/app.log', mkdir: true }, }, ], }, };