我有一个实用程序方法,可以处理所有Lambda处理程序的错误。
static HandlerEndWithError(err: Error): IApiGatewayResponse {
Logger.debug(`handler ended with error. err => ${JSON.stringify(err)}`);
Logger.debug(`error stack ${err.stack}`);
...
}
Cloudwatch中的输出如下所示:
07:01:35
{"message":"handler ended with error. err => {\"generatedMessage\":false,\"name\":\"AssertionError [ERR_ASSERTION]\",\"code\":\"ERR_ASSERTION\",\"expected\":true,\"operator\":\"==\"}","level":"debug"}
07:01:41
{"message":"error stack AssertionError [ERR_ASSERTION]: the Address field is required in the request body\n at assert ... (abbreviated)
请注意,在这种情况下,记录器记录堆栈所需的时间为6秒。
如果我将方法更改为仅记录err.message,则它将按预期工作(只需记录几毫秒)。
有什么主意如何更好地记录错误及其堆栈?