如何在NestJS独立模块中使用Winston Logger,该模块不';不要使用类

如何在NestJS独立模块中使用Winston Logger,该模块不';不要使用类,nestjs,winston,Nestjs,Winston,我试过几种不同的方法 目前我无法将Winston设置为NestJS的默认记录器,因为它抱怨实例中没有“getTimestamp”函数 因此,对于NestJS中的控制器,我使用了依赖项注入,这对api(REST端点)很好 问题是我已经离开了OOP,所以我所有的库都是用typescript作为函数编写的。不是纯粹的函数,但比OOP方法更好(bug更少!) 我的问题是-如何在没有类的库中访问主winston logger 我正在使用温斯顿图书馆。你试过这个吗 使用createLogger函数在应用程序

我试过几种不同的方法

目前我无法将Winston设置为NestJS的默认记录器,因为它抱怨实例中没有“getTimestamp”函数

因此,对于NestJS中的控制器,我使用了依赖项注入,这对api(REST端点)很好

问题是我已经离开了OOP,所以我所有的库都是用typescript作为函数编写的。不是纯粹的函数,但比OOP方法更好(bug更少!)

我的问题是-如何在没有类的库中访问主winston logger

我正在使用温斯顿图书馆。

你试过这个吗

使用createLogger函数在应用程序生命周期之外创建记录器,并将其传递给NestFactory.create()

您可以使用一个单独的文件来创建日志实例,然后将其导入模块/库以及
main.ts

//src/logger/index.ts
从“nest winston”导入{WinstonModule};
导出常量myLogger=WinstonModule.createLogger({
//选项(与WinstonModule.forRoot()选项相同)
})
//src/myLib/index.ts
从“@/logger”导入{myLogger}//我喜欢使用别名
导出常量myLib=()=>{
// ...
myLogger.log('Yay')
}
//src/main.ts
从“@/logger”导入{myLogger}
异步函数引导(){
const app=wait NestFactory.create(AppModule{
记录器:myLogger
});
}
bootstrap();
您试过这个吗

使用createLogger函数在应用程序生命周期之外创建记录器,并将其传递给NestFactory.create()

您可以使用一个单独的文件来创建日志实例,然后将其导入模块/库以及
main.ts

//src/logger/index.ts
从“nest winston”导入{WinstonModule};
导出常量myLogger=WinstonModule.createLogger({
//选项(与WinstonModule.forRoot()选项相同)
})
//src/myLib/index.ts
从“@/logger”导入{myLogger}//我喜欢使用别名
导出常量myLib=()=>{
// ...
myLogger.log('Yay')
}
//src/main.ts
从“@/logger”导入{myLogger}
异步函数引导(){
const app=wait NestFactory.create(AppModule{
记录器:myLogger
});
}
bootstrap();

在不使用类的情况下,如何使用Nest?这就是整个依赖注入系统(大部分)的构建around@JayMcDonielNest仅用于API。API调用了我的其余功能,这些功能都在库中,库具有更为函数化的编程方法。我非常有兴趣了解您的方法。如果没有依赖注入,您必须设置一个可以全局访问的winston实例,将winston实例传递给每个函数,或者在每个方法中设置一个winston实例。所有这些似乎都不吸引我,但如果没有DI,就不会有一个好的解决方案。谢谢@JayMcDoniel-是的,我一开始并不太喜欢OOP。自从转向功能性更强的编程方法以来,我得到了更快、更无bug的代码。我只想将NESTJS用于快速休息apis,因此您最好使用Express。Nest非常适合使用带有类和其他面向对象原则的OOP代码。在不使用类的情况下,如何使用Nest?这就是整个依赖注入系统(大部分)的构建around@JayMcDonielNest仅用于API。API调用了我的其余功能,这些功能都在库中,库具有更为函数化的编程方法。我非常有兴趣了解您的方法。如果没有依赖注入,您必须设置一个可以全局访问的winston实例,将winston实例传递给每个函数,或者在每个方法中设置一个winston实例。所有这些似乎都不吸引我,但如果没有DI,就不会有一个好的解决方案。谢谢@JayMcDoniel-是的,我一开始并不太喜欢OOP。自从转向功能性更强的编程方法以来,我得到了更快、更无bug的代码。我只想将NESTJS用于快速休息apis,因此您最好使用Express。Nest非常适合使用类和其他面向对象原则编写OOP代码。