Nestjs 如何使HTTP请求对象对winston logger可见?

Nestjs 如何使HTTP请求对象对winston logger可见?,nestjs,winston,Nestjs,Winston,我正在构建一个基于日志的应用程序并使用它进行日志记录 我想用每个日志消息记录传入的请求头。为此,我需要从nestjs中提取HTTP上下文并将其传递给nest winston 我也找不到该怎么做。如果这在nest winston中不可行,我不介意直接使用winston。据我所知,nest winston模块不可行,因为其记录器不可行。您需要创建自己的服务,并将服务作为请求范围。然后可以使用@InjectREQUEST将请求添加到要创建的winston服务的每个实例中 话虽如此,请求作用域类也有一些

我正在构建一个基于日志的应用程序并使用它进行日志记录

我想用每个日志消息记录传入的请求头。为此,我需要从nestjs中提取HTTP上下文并将其传递给nest winston


我也找不到该怎么做。如果这在nest winston中不可行,我不介意直接使用winston。

据我所知,nest winston模块不可行,因为其记录器不可行。您需要创建自己的服务,并将服务作为请求范围。然后可以使用@InjectREQUEST将请求添加到要创建的winston服务的每个实例中


话虽如此,请求作用域类也有一些缺点,即资源消耗,因为不仅服务必须重新实例化,而且依赖于winston服务的每个服务都需要重新实例化,直到到达控制器为止。请记住

您能详细说明一下重新实例化的含义吗?你能告诉我发生了什么事吗?这个嵌套是特定的还是更一般的概念,您可以引导我找到一个可以阅读的学习材料?因为嵌套中的所有内容都是基于类的,所以必须先创建实例化的类,然后才能使用它们。对于请求作用域类,在每个新请求上,将要使用的每个类都需要重新创建,从启动请求作用域的类一直到控制器。从Nest的文档中可以看出,它的解释比注释中的解释更为清晰