首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人知道如何在NestJS中实现蜜獾日志吗?

有人知道如何在NestJS中实现蜜獾日志吗?
EN

Stack Overflow用户
提问于 2020-06-22 23:10:41
回答 1查看 172关注 0票数 2

NestJS使用express,蜜獾有一个快速中间件,但我似乎不知道如何实现它。目前,我的main.ts文件如下所示

代码语言:javascript
复制
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ConfigService } from '@nestjs/config';
import * as Honeybadger from 'honeybadger';

Honeybadger.configure({
  apiKey: '??hidden for security reasons??'
})

async function bootstrap() {
  const app = await NestFactory.create(AppModule, {
    logger: false,
  });
  app.use(Honeybadger.requestHandler);
  app.use(Honeybadger.errorHandler);
  const configService = app.get(ConfigService);
  await app.listen(configService.get('PORT'));
}

bootstrap();
EN

回答 1

Stack Overflow用户

发布于 2022-09-14 16:00:47

对于以后发现这个问题的人,我找到了一种适合我的方法。

创建一个扩展ConsoleLogger类的新记录器,并按如下方式调用错误时的Honeybadger.notify()

代码语言:javascript
复制
import { ConsoleLogger } from '@nestjs/common';
import * as Honeybadger from '@honeybadger-io/js';

export class CustomLogger extends ConsoleLogger {
  error(message: any, stack?: string, context?: string) {
    Honeybadger.notify(message);
    super.error(message);
  }
}

然后为应用程序注册新的记录器,配置HoneyBadger并使用它的请求处理程序:

代码语言:javascript
复制
..
import * as Honeybadger from '@honeybadger-io/js';
import { CustomLogger } from './customLogger';

async function bootstrap() {
  const app = await NestFactory.create<NestExpressApplication>(AppModule, {
    logger: new CustomLogger(),
  });

  Honeybadger.configure({ apiKey: process.env.HONEYBADGER_API_KEY });
  app.use(Honeybadger.requestHandler);

  //Listen on port 3000
  await app.listen(3000);
}
bootstrap();

您的应用程序将使用错误消息通知Honeybadger,并仍然记录任何错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62524884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档