Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我是不是应该绕过皮诺儿童伐木工人?_Javascript_Aws Lambda - Fatal编程技术网

Javascript 我是不是应该绕过皮诺儿童伐木工人?

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

这是一个文体问题。我在一些Javascript/Typescript微服务中使用了Pino。由于它们在AWS上运行,我想传播RequestId

当调用我的一个函数时,我将创建一个新的子记录器,如下所示:

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)
。这是一个简单的函数,用于创建可用于整个模块的子记录器