以下是一个使用nest-winston
在NestJS中配置日志的示例代码:
首先,安装所需的包:
npm install winston nest-winston
然后,在你的app.module.ts
文件中配置日志:
import { Module } from '@nestjs/common';
import { WinstonModule } from 'nest-winston';
import * as winston from 'winston';
@Module({
imports: [
WinstonModule.forRoot({
transports: [
new winston.transports.Console({
level: 'info',
handleExceptions: true,
json: true,
colorize: true,
}),
// 可以添加更多的日志传输方式,例如文件传输等
],
exitOnError: false, // 如果设置为false,则即使日志系统出错,应用程序也会继续运行
}),
],
// ... 其他配置
})
export class AppModule {}
现在,你可以在任何提供者中注入日志器并使用它来记录信息:
import { Injectable, Logger } from '@nestjs/common';
import { WinstonLogger } from 'nest-winston';
@Injectable()
export class MyService {
private readonly logger: Logger;
constructor(logger: WinstonLogger) {
this.logger = new Logger('MyService');
}
someMethod(): void {
this.logger.log('Some method executed');
}
}
这个示例展示了如何在NestJS应用程序中设置和使用winston
作为日志传输。通过WinstonModule.forRoot
方法配置了日志传输方式为控制台,并且设置了日志的级别为info
。在服务中,我们注入了WinstonLogger
并使用它来记录日志。