nestjs 日志服务的使用方法

新手上路,请多包涵

我尝试使用 nestjs 的内部 Logger (在 https://docs.nestjs.com/techniques/logger 上有描述 -> 但没有说明如何使用它)

但我有问题(试图注入 LoggerService 等等)

谁能解释如何做到这一点?

原文由 maku_at 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 370
1 个回答

最佳实践

比静态访问 Logger 更好的是为您的类创建一个实例:

 @Controller()
export class AppController {
  private readonly logger = new Logger(AppController.name);

  @Get()
  async get() {
    this.logger.log('Getting stuff');
  }
}


为什么这样更好?

  1. 您可以在构造函数中提供一个上下文,例如 new Logger(AppController.name) 这样类名(或其他任何名称)将成为此类中所有日志消息的一部分。

  2. 如果您在某个时候想要扩展或替换默认值 LoggerService ,除了设置新记录器之外,您不需要更改任何应用程序代码。您的新记录器将自动使用。如果您静态访问它,它将继续采用默认实现。

 const app = await NestFactory.create(AppModule, {logger: new MyLogger()});

  1. 您可以在测试中模拟 Logger
 module.useLogger(new NoOpLogger());

原文由 Kim Kern 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题