我尝试使用nestjs的内部Logger
(在https://docs.nestjs.com/techniques/logger-〉上描述,但没有描述如何使用它)
但是我遇到了问题(试图注入LoggerService
等等)
有人能解释一下怎么做吗?
我尝试使用nestjs的内部Logger
(在https://docs.nestjs.com/techniques/logger-〉上描述,但没有描述如何使用它)
但是我遇到了问题(试图注入LoggerService
等等)
有人能解释一下怎么做吗?
7条答案
按热度按时间gg58donl1#
最佳实践
比静态访问
Logger
更好的方法是为类创建一个示例:为什么这样更好?
1.您可以在构造函数中提供一个上下文,如
new Logger(AppController.name)
,这样类名(或其他任何内容)将成为该类中所有日志消息的一部分。1.如果你想扩展或替换默认的
LoggerService
,除了设置新的日志记录器之外,你不需要改变任何应用程序代码。你的新日志记录器将被自动使用。如果你静态访问它,它将继续采用默认的实现。1.您可以在测试中模拟
Logger
:hc8w905p2#
您需要首先导入到类中:
然后你就可以开始记录了
brc7rcf03#
最佳实践是注入现有记录器。
在 * app. service. ts * 中
yftpprvb4#
这个答案可能对其他尝试使用CustomLogger实现的人有用。我试图展示一个示例自定义日志记录器实现以及如何将其注入Nestjs框架。
我知道Nestjs本质上使用pino logger,这只是logger服务的一个自定义实现(你可以用bunyan,winston等代替)这是我使用的文件夹结构:
这是它的主要要点,因此日志服务的实现如下
自定义实现是通过pinojs github中的我的特定选项实现的我使用fastify js而不是express(同样是为了满足我的项目需求)。因此我在fastify js服务器选项中添加了日志记录器。如果您使用express,最好如上所述在Nest应用适配器中指定新的自定义实现。
负责实现fastify服务器的实用程序服务
在我的主要。ts
zkure5ic5#
答案很简单,Logger类上有静态方法。
例如:
用法:
4zcjmb1e6#
简单地说,你可以使用logger来满足你的需求(错误,警告)。这是它的示例代码。
则输出:
x33g5p2x7#
我的方法是通过NestJS DI使用
AppLogger
服务,它 Package 了NestJS日志记录器。private readonly logger = new Logger(AppController.name);
方法的一个难题)它看起来像: