我认为在nestjs中获取当前方法名称可能是可能的。我不是真正的意思是拦截器,而是使用reflect.getMetaData或类似的东西。
我想做什么?
在需要记录器的每种方法中,我正在执行以下代码行
createTerminusOptions(): TerminusModuleOptions {
const logger = this.loggerFactoryService.getLogger({ category: `${TerminusOptionsService.name}::createTerminusOptions` })
如您所见,TerminusOptionsService.name是强类型的,因此,如果我重构该名称,则它将损坏并被编译器捕获。方法名称是createterminusOptions,但是我将其放置在字符串中。我想尝试以编程方式或强类型获取此类型,以便如果我进行重构,则它要么自动更改,要么随着方法名称的更改而引发错误。
我知道可以使用arguments.callee,但这在严格模式下被禁止。
我认为nestjs类型系统中保存了一些元数据,所以我希望能够在这里使用某些内容?
当然,这将被归类为反射,所以我不想增加大量开销-如果可能,您是否认为这是个坏主意,因为这会降低性能?
任何想法都很感激
谢谢