【发布时间】:2021-11-05 16:54:28
【问题描述】:
我有几个由 NestJS 中的控制器或服务调用的实用程序类。每个实用程序类都使用记录器声明,如下所示:
export class A {
private logger = new Logger(A.name);
test() {
this.logger.log('TEST');
}
}
这有助于开发和故障排除,但在生产中,我希望能够关闭 debug、verbose 和 log 级别的日志。
除了单独注释掉日志语句之外,我还没有找到一种可靠的方法在全球范围内做到这一点。有没有办法从像main.ts 这样的中心位置这样做?
【问题讨论】:
-
使 Logger 构造函数返回一个单例,并且对记录器的所有引用都是相同的记录器。然后在记录器上公开方法以更改日志级别等。
-
感谢@Joe。记录器是
NestJS框架中的内置类。而且我想为每个类保留单独的记录器实例(这样它也可以在从内部调用时记录类名)。 -
每个实例都可以从管理日志设置的共享文件/实例中提取配置。如果您仍然需要独立的记录器实例,则同样的想法。