我试图使用nestjs的内部Logger
(在https://docs.nestjs.com/techniques/logger上描述 - >但没有描述如何使用它)
但我有问题(试图注入LoggerService
等)
任何人都可以解释如何做到这一点?
TIA
比静态访问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()});
您需要先导入到您的班级:
import { Logger } from '@nestjs/common';
然后你可以开始记录:
Logger.log('info')
Logger.warn('warning')
Logger.error('something went wrong! ', error)
答案很简单。 Logger类上有静态方法。
EG
static log(message: string, context = '', isTimeDiffEnabled = true)
用法:
Logger.log('Only a test');