当前,我正在使用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
似乎不是一个好方法,因为文档明确指出了
有没有一种方法可以自动以标准方式确定生产代码的上下文(调用方)?