Javascript NestJs为日志创建自定义服务-不打印输出
我正在尝试创建一个NestJs服务,它将扩展一个记录器。但是,它没有打印所需的输出(例如super.warn();有关详细信息,请参阅下文)。我相信我所做的几乎是nestjs网站上的教程,但我似乎无法让它工作 A.service.ts(我正在运行A.service.spec.ts来测试日志的输出) 我的log.service.tsJavascript NestJs为日志创建自定义服务-不打印输出,javascript,node.js,nestjs,Javascript,Node.js,Nestjs,我正在尝试创建一个NestJs服务,它将扩展一个记录器。但是,它没有打印所需的输出(例如super.warn();有关详细信息,请参阅下文)。我相信我所做的几乎是nestjs网站上的教程,但我似乎无法让它工作 A.service.ts(我正在运行A.service.spec.ts来测试日志的输出) 我的log.service.ts import { Logger } from '@nestjs/common'; @Injectable({scope:Scope.TRANSIEN
import { Logger } from '@nestjs/common';
@Injectable({scope:Scope.TRANSIENT})
export class LogService extends Logger {
meow(message:string) {
super.warn(message) // This does NOT get printed. My goal is to get this printed.
Logger.warn("static warning") // This gets printed
return 1337
}
}
从外观上看,super.warn(…)似乎并没有在终端中打印日志,但如果我使用PlainLogger,它基本上具有与我的自定义日志服务相同的方法(除了它只是一个没有任何模块的普通类,并且没有@Injectable注释)
从我发布的教程链接来看,似乎可以创建一个日志服务,但我不太确定哪里出了问题。任何洞察都将不胜感激。事实证明,通过调用服务(例如,通过控制器调用服务)来打印日志,但仅仅运行规范(测试文件)似乎不起作用
a.service.ts
@Injectable()
export class AService {
private readonly plainLogger = new PlainLogger()
constructor(private logService: LogService) {
this.logService.setContext("some context")
}
aMethod() {
// plainService.meow("some input") This behaves as expected
this.logService.meow("some input");
}
}
import { Logger } from '@nestjs/common';
@Injectable({scope:Scope.TRANSIENT})
export class LogService extends Logger {
meow(message:string) {
super.warn(message) // This does NOT get printed. My goal is to get this printed.
Logger.warn("static warning") // This gets printed
return 1337
}
}