Javascript 我是不是应该绕过皮诺儿童伐木工人?
这是一个文体问题。我在一些Javascript/Typescript微服务中使用了Pino。由于它们在AWS上运行,我想传播RequestId 当调用我的一个函数时,我将创建一个新的子记录器,如下所示:Javascript 我是不是应该绕过皮诺儿童伐木工人?,javascript,aws-lambda,Javascript,Aws Lambda,这是一个文体问题。我在一些Javascript/Typescript微服务中使用了Pino。由于它们在AWS上运行,我想传播RequestId 当调用我的一个函数时,我将创建一个新的子记录器,如下所示: const parentLogger = pino(pinoDefaultConfig) function createLogger(context) { return parentLogger.child({ ...context, }) } function create
const parentLogger = pino(pinoDefaultConfig)
function createLogger(context) {
return parentLogger.child({
...context,
})
}
function createLoggerForAwsLambda(awsContext) {
const context = {
requestId: awsContext.awsRequestId,
}
return createLogger(context)
}
然后将记录器实例传递给所有方法。也就是说,(…,logger)
几乎存在于每一个不太好的方法签名中。此外,我需要在测试中提供一个记录器
你是怎么做到的?有更好的方法吗?我不会将requestId用作记录器上下文的一部分,而是将其用作记录器的有效负载,如
logger.info({requestId},myLogMessage)
。这是一个简单的函数,可以创建一个子记录器,用于整个模块。我不会将requestId用作记录器上下文的一部分,而是将其用作记录器的有效负载,如logger.info({requestId},myLogMessage)
。这是一个简单的函数,用于创建可用于整个模块的子记录器