如何在NestJs中使用Fastify忽略特定的路由记录?

时间:2019-10-08 12:06:04

标签: node.js logging nestjs fastify

我想使用Fastify忽略或更改NestJs应用程序中路由的logLevel。

这是我通常在Fastify应用程序中执行的操作。在这里,我将/health路由logLevel更改为error,以便仅在运行状况错误时才记录日志。

server.get('/health', { logLevel: 'error' }, async (request, reply) => {
    if (mongoose.connection.readyState === 1) {
        reply.code(200).send()
    } else {
        reply.code(500).send()
    }
})

但这是NestJs中我的健康控制者

@Get('health')
getHealth(): string {
  return this.appService.getHealth()
}

和main.ts文件。

const app = await NestFactory.create<NestFastifyApplication>(
        AppModule,
        new FastifyAdapter({
            logger: true
        }),
    )

我不想仅记录运行状况路由,而不是日志。

在这方面请提供帮助。

1 个答案:

答案 0 :(得分:2)

使用Fastify忽略/沉默NestJS中的特定路由解决方法。 我们可以使用Fastify钩子onRoute并更改该路由的日志级别。 例如忽略健康路线。

import fastify from 'fastify'


const fastifyInstance = fastify()
fastifyInstance.addHook('onRoute', opts => {
        if (opts.path === '/health') {
            opts.logLevel = 'silent'
        }
    })