【Nest】日志记录
内置Logger
默认的 nest 控制台日志配置:
const app = await NestFactory.create(AppModule, {logger: ['error', 'warn', 'log']});
当然,nest 内部也默认集成了日志模块:
import { Logger } from '@nestjs/common';const logger = new Logger()logger.log(`Application is running on: http://localhost:${port}`);
在单个模块下使用:
export class UsersController {// 可以将一个参数传递给日志对象,一般我们设置为模块名private readonly logger = new Logger(UsersController.name);constructor(private readonly usersService: UsersService) {}@Get()@Roles(Role.admin)@ApiOperation({ summary: '获取所有用户' })@ApiResponse({ status: 200, description: '获取成功' })findAll() {this.logger.log('获取所有用户');return this.usersService.findAll();}
}
nestjs-pino
nestjs-pino
pino 有一个特点就是默认会打印日志(无需手动的 logger.log )。而且他很小,很简洁。
默认的打印和 console.log 一样(很丑陋),so 我们可以使用 pino-pretty 这个库来优化样式。这是在开发环境。
如果是生产环境下,我们可以使用 pino-roll 来记录定时记录日志,便于追踪用户行为。
winstom
winston 对于日志的集成度很高。
nest-winston