[英]NestJs creating a custom service for logging - not printing the output
我正在尝试创建一个将扩展 Logger 的 NestJs 服务。 但是,它没有打印所需的 output(例如,super.warn();有关详细信息,请参见下文)。 我相信我正在做的几乎是来自 nestjs 网站的教程,但我似乎无法让它工作。 https://docs.nestjs.com/techniques/logger#using-the-logger-for-application-logging
I want to use custom logging.
src
- a module
- a.service.ts
- a.module.ts
- log module
- log.service.ts // my custom log service
- log.module.ts
- PlainLogger (no module, no @Injectable(), just a plain class)
A.service.ts(我正在运行a.service.spec.ts来测试日志的output)
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");
}
}
我的 log.service.ts
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,它基本上具有相同的方法(除了它只是一个没有任何模块的普通class,并且它没有 @Injectable 注释)作为我的自定义日志服务。
从我发布的教程链接中,似乎可以创建一个日志服务,但我不太确定出了什么问题。 任何见解将不胜感激。
事实证明,日志确实是通过调用服务打印的(例如,通过 controller 调用服务,但简单地运行规范(测试文件)似乎不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.