Skip to content

日志(一)

日志等级

  • Log 通用日志,按需进行记录(打印)

  • Warning 警告日志,比如尝试多次进行数据库操作

  • Error 错误日志,比如数据库连接失败

  • Debug:调试日志 比如 加载数据日志

  • Verbose:详细日志,所有的操作与详细信息(非必要不打印)

日志功能

  • 错误日志-> 方便定位问题,给用户有好的提示

  • 调试日志 -> 方便开发

  • 请求日志 -> 记录敏感行为

日志记录位置

  • 控制台日志-> 方便监看(调试用)

  • 文件日志 -> 方便回溯与追踪(24 小时滚动)

  • 数据库日志->敏感操作,敏感数据记录

关闭整个日志模块

ts
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";

async function bootstrap() {
  const app = await NestFactory.create(AppModule, {
    // 关闭整个nestjs的日志
    logger: false,
  });
  await app.listen(process.env.PORT ?? 3000);
}
bootstrap();

日志分类

  • 这样仅仅打印错误和警告的日志.其余的日志不打印.
ts
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
// 调用Logger这个模块
import { Logger } from "@nestjs/common";
async function bootstrap() {
  const app = await NestFactory.create(AppModule, {
    // 关闭整个nestjs的日志
    // logger: false,
    // 仅仅打印出日志等级
    logger: ["error", "warn"],
  });
  await app.listen(process.env.PORT ?? 3000);
  logger.warn("服务启动成功");
}
bootstrap();

打印日志

ts
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
// 调用Logger这个模块
import { Logger } from "@nestjs/common";

async function bootstrap() {
  const logger = new Logger();
  const app = await NestFactory.create(AppModule);
  await app.listen(process.env.PORT ?? 3000);
  logger.warn("服务启动成功");
}
bootstrap();

常规用法

ts
import { Controller, Get, Logger } from "@nestjs/common";
import { AppService } from "./app.service";

@Controller()
export class AppController {
  // 传递的参数就是日志的模块名称
  private logger = new Logger(AppController.name);

  constructor(private readonly appService: AppService) {
    this.logger.log("AppController created");
  }

  @Get()
  getHello(): string {
    this.logger.log("getHello() called");
    return this.appService.getHello();
  }
}