NestJS:如何为不同环境设置全局日志级别

Ram*_*ngh 18 logging nestjs

我正在使用 NestJS 内置记录器。我找不到设置全局日志级别的选项。例如,开发环境的日志级别为“详细”,生产环境的日志级别为“错误”。

另外,是否有一个选项可以禁用 NestJS 在输出中添加的内容(即时间戳和其他信息)并仅记录消息?我需要这个,因为我们使用 Kibana 日志,它会自动添加所需的字段。

icl*_*126 28

您可以在文件中设置日志级别main.ts

const app = await NestFactory.create(AppModule, {
  logger: process.env.NODE_ENV === 'development' ? ['log', 'debug', 'error', 'verbose', 'warn'] : ['error', 'warn'],
});
Run Code Online (Sandbox Code Playgroud)

  • “详细”包括所有级别。`process.env.NODE_ENV === '开发' ? ['详细']:['错误','警告']` (3认同)

Mac*_*ski 2

您可以使用该逻辑编写自己的 Logger 并将其用作服务,也可以全局设置它

export class MyLogger extends Logger {
  error(message: string, trace: string) {
    // add your tailored logic here
    super.error(message, trace);
  }
}
Run Code Online (Sandbox Code Playgroud)
const app = await NestFactory.create(ApplicationModule, {
  logger: new MyLogger(),
});
Run Code Online (Sandbox Code Playgroud)