AWS Cloudwatch Node.js 堆栈跟踪打印在单独的日志条目中
AWS Cloudwatch Node.js stack trace printed in separate log entries
目前,当我的 Node.js 应用程序发生错误时,堆栈跟踪中的每一行都打印在单独的日志条目中,如下所示:
我该怎么做才能让单个错误的堆栈跟踪打印在单个日志条目中?
我发现我们可以使用 V8 堆栈跟踪自定义堆栈跟踪格式 API:https://v8.dev/docs/stack-trace-api
因此,我们可以将其重新格式化为 JSON 字符串,而不是打印为 \n
分隔,这样 Cloudwatch 将在单个日志条目中解析它,如下所示:
Error.prepareStackTrace = (err, stack) => JSON.stringify({
message: err.message,
stack: stack.map(frame => ({
file: frame.getFileName(),
function: frame.getFunctionName(),
column: frame.getColumnNumber(),
line: frame.getLineNumber()
}))
});
目前,当我的 Node.js 应用程序发生错误时,堆栈跟踪中的每一行都打印在单独的日志条目中,如下所示:
我该怎么做才能让单个错误的堆栈跟踪打印在单个日志条目中?
我发现我们可以使用 V8 堆栈跟踪自定义堆栈跟踪格式 API:https://v8.dev/docs/stack-trace-api
因此,我们可以将其重新格式化为 JSON 字符串,而不是打印为 \n
分隔,这样 Cloudwatch 将在单个日志条目中解析它,如下所示:
Error.prepareStackTrace = (err, stack) => JSON.stringify({
message: err.message,
stack: stack.map(frame => ({
file: frame.getFileName(),
function: frame.getFunctionName(),
column: frame.getColumnNumber(),
line: frame.getLineNumber()
}))
});