【问题标题】:How do I prevent Nest.js from logging an exception to the console?如何防止 Nest.js 将异常记录到控制台?
【发布时间】:2021-02-11 10:21:46
【问题描述】:

背景

我们使用ApolloHandler 来处理我们的 Nest.js + GraphQL 应用程序中的异常。

问题

尽管ApolloHandler 设法创建结构化的 GraphQL 错误响应,但每个异常(加上它的堆栈跟踪)也会生成控制台日志和记录器条目[ExceptionHandler],从而用数千个已管理的输入错误污染应用程序日志。

问题

如何设置 Nest.js 来抑制那些 ApolloHandler 异常?当然,非ApolloHandler 异常应保持记录。

【问题讨论】:

    标签: exception graphql nestjs apollo-server


    【解决方案1】:

    创建您自己的自定义记录器以过滤掉这些消息,例如:

    
    export class AppLogger extends Logger {
    
      error(message: string, trace: string, context?: string) {
        if (message !== 'Validations failed!') {
          super.error(message, trace, context)
        }
      }
    
    }
    

    并将其用作

    app.useLogger(new AppLogger())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-09
      • 2011-10-15
      • 2019-07-05
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 2023-01-21
      相关资源
      最近更新 更多