NestJs-通过确定呼叫者姓名来记录特定功能

时间:2020-01-05 18:55:50

标签: javascript typescript nestjs

当前,我正在使用NestJs默认日志记录,并提出类似这样的内容

@Controller('users')
export class UsersController {
  private logger: Logger = new Logger(UsersController.name, true);

  @Get()
  public getAllUsers(): any[] {
    this.logger.debug('Getting all users', this.getAllUsers.name);
    return [];
  }
}

将显示日志消息

[巢] 2926-01/05/2020,7:39:19 PM [getAllUsers]获取全部 用户+ 2094ms

自动将context参数设置为只需要写就很酷

this.logger.debugFunction('Getting all users');

因为在记录控制器,服务和存储库功能时,事情可能会变得有些混乱。因此,从文档

https://docs.nestjs.com/techniques/logger#extend-built-in-logger

可以扩展默认的日志记录行为。以文档中的示例为例,我想出了

export class MyLogger extends Logger {
  debugFunction(message: string) {
    super.debug(message, 'this.caller.name');
  }
}

在此之前已被问过

How do you find out the caller function in JavaScript?

但是this.debugFunction.caller似乎不是一个好方法,因为文档明确指出了

enter image description here

有没有一种方法可以自动以标准方式确定生产代码的上下文(调用方)?

0 个答案:

没有答案