如何在 NestJs 中使用 Fastify 忽略特定路由日志记录?
How to Ignore a specific route logging using Fastify in NestJs?
我想在我的 NestJs 应用程序中使用 Fastify 忽略或更改路由的 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
}),
)
我不想只记录健康路线而不记录路线。
请在这方面提供帮助。
到 ignore/silent 使用 Fastify 的 NestJS 中的特定路由解决方法。
我们可以使用 Fastify hook onRoute
并更改该路由的日志级别。
例如忽略健康路线。
import fastify from 'fastify'
const fastifyInstance = fastify()
fastifyInstance.addHook('onRoute', opts => {
if (opts.path === '/health') {
opts.logLevel = 'silent'
}
})
我想在我的 NestJs 应用程序中使用 Fastify 忽略或更改路由的 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
}),
)
我不想只记录健康路线而不记录路线。
请在这方面提供帮助。
到 ignore/silent 使用 Fastify 的 NestJS 中的特定路由解决方法。
我们可以使用 Fastify hook onRoute
并更改该路由的日志级别。
例如忽略健康路线。
import fastify from 'fastify'
const fastifyInstance = fastify()
fastifyInstance.addHook('onRoute', opts => {
if (opts.path === '/health') {
opts.logLevel = 'silent'
}
})