日志(一)
日志等级
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();
}
}