首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用nestjs日志服务

如何使用nestjs日志服务
EN

Stack Overflow用户
提问于 2018-10-04 23:51:58
回答 4查看 59.4K关注 0票数 45

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

但是我遇到了问题(尝试注入LoggerService等等)

有人能解释一下如何做到这一点吗?

EN

回答 4

Stack Overflow用户

发布于 2018-10-21 00:21:02

最佳实践

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

代码语言:javascript
复制
@Controller()
export class AppController {
  private readonly logger = new Logger(AppController.name);

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

为什么这样更好?

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

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

代码语言:javascript
复制
const app = await NestFactory.create(AppModule, {logger: new MyLogger()});

  1. 您可以在测试中模拟Logger

代码语言:javascript
复制
module.useLogger(new NoOpLogger());
票数 136
EN

Stack Overflow用户

发布于 2018-11-13 21:46:06

您需要首先导入到您的类中:

代码语言:javascript
复制
import { Logger } from '@nestjs/common';

然后,您可以从日志开始:

代码语言:javascript
复制
Logger.log('info')
Logger.warn('warning')
Logger.error('something went wrong! ', error)
票数 20
EN

Stack Overflow用户

发布于 2018-10-05 13:10:55

答案很简单。Logger类上有静态方法。

例如:

代码语言:javascript
复制
static log(message: string, context = '', isTimeDiffEnabled = true) 

用法:

代码语言:javascript
复制
Logger.log('Only a test');
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52650895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档