作为 fastify 插件的 pino logger
pino logger as fastify plugin
我已经为 fastify 记录器创建了自己的选项和流:
const logger = pino(
{
level: 'info',
...ecsFormat,
},
pinoMultiStream.multistream([
{ stream: streamToElastic },
{
stream: pretty({
colorize: true,
sync: true,
ignore: 'pid',
}),
},
]),)
const fastify = Fastify({logger})
现在我想将这个选项提取为 fastify 插件,我该如何实现这个功能?如果那不可能,我该怎么做才能提取此代码?
你不能将你的代码封装到 Fastify 插件中,因为 Fastify 的记录器已经在那个时候创建了。
在这种情况下,您需要定义自己的逻辑来构建 fastify 服务器的配置,例如 decorator
模式。
您将获得的用户体验类似于:
const decorateLogger = require('my-logger-module')
const applicationConfig = loadAppConfig()
decorateLogger(applicationConfig, options)
const app = Fastify(applicationConfig)
我已经为 fastify 记录器创建了自己的选项和流:
const logger = pino(
{
level: 'info',
...ecsFormat,
},
pinoMultiStream.multistream([
{ stream: streamToElastic },
{
stream: pretty({
colorize: true,
sync: true,
ignore: 'pid',
}),
},
]),)
const fastify = Fastify({logger})
现在我想将这个选项提取为 fastify 插件,我该如何实现这个功能?如果那不可能,我该怎么做才能提取此代码?
你不能将你的代码封装到 Fastify 插件中,因为 Fastify 的记录器已经在那个时候创建了。
在这种情况下,您需要定义自己的逻辑来构建 fastify 服务器的配置,例如 decorator
模式。
您将获得的用户体验类似于:
const decorateLogger = require('my-logger-module')
const applicationConfig = loadAppConfig()
decorateLogger(applicationConfig, options)
const app = Fastify(applicationConfig)