简介:在 Nestjs 应用程序中,记录操作日志对于监控和调试应用程序非常有用。本文将介绍如何使用内置的日志记录模块和第三方库,以优雅地记录 Nestjs 中的操作日志。
在 Nestjs 中,可以使用内置的日志记录模块或第三方库来记录操作日志。以下是几种常见的方法:
Logger 类并将其注入到需要记录日志的类中。例如:
import { Logger } from '@nestjs/common';@Injectable()export class MyService {private readonly logger = new Logger(MyService.name);constructor() { }async someMethod() {this.logger.log('开始执行方法');// 执行一些操作this.logger.log('方法执行完毕');}}
在上面的示例中,我们导入了 Logger 类并创建了一个实例 logger,然后在需要记录日志的方法中,使用 logger.log() 方法来记录日志信息。这样,我们就可以在控制台中看到相应的日志输出。
首先,需要安装 Winston:
npm install winston --save
然后,在需要记录日志的类中导入 Winston 并创建一个实例:
import * as winston from 'winston';@Injectable()export class MyService {private readonly logger = winston;constructor() { }async someMethod() {this.logger.info('开始执行方法');// 执行一些操作this.logger.info('方法执行完毕');}}
在上面的示例中,我们导入了 Winston 并创建了一个实例 logger,然后在需要记录日志的方法中,使用 logger.info() 方法来记录日志信息。Winston 支持多种输出格式和目标,可以根据需要进行配置。这样,我们就可以在控制台、文件或其他目标中看到相应的日志输出。
@Logger() 装饰器来设置日志级别和过滤规则:
@Module({})export class AppModule {@Logger({ level: 'info', propagate: true })appLogger: Logger;}