Closed
Description
Use case
import { Logger } from '@aws-lambda-powertools/logger'
const err = new Error('message')
console.log(err)
new Logger().error("err", err)
Compare native node formatting, with clear new line and indentation, to powertools
POWERTOOLS_DEV=1 node test.mjs
Error: message
at file://test.mjs:2:13
at ModuleJob.run (node:internal/modules/esm/module_job:193:25)
at async Promise.all (index 0)
at async ESMLoader.import (node:internal/modules/esm/loader:530:24)
at async loadESM (node:internal/process/esm_loader:91:5)
at async handleMainPromise (node:internal/modules/run_main:65:12)
{
"level": "ERROR",
"message": "err",
"service": "service_undefined",
"timestamp": "2023-03-09T19:29:41.087Z",
"error": {
"name": "Error",
"location": "node:internal/modules/esm/module_job:193",
"message": "message",
"stack": "Error: message\n at file://test.mjs:2:13\n at ModuleJob.run (node:internal/modules/esm/module_job:193:25)\n at async Promise.all (index 0)\n at async ESMLoader.import (node:internal/modules/esm/loader:530:24)\n at async loadESM (node:internal/process/esm_loader:91:5)\n at async handleMainPromise (node:internal/modules/run_main:65:12)"
}
}
Solution/User Experience
Powertools should print the stack trace similarly to native node.
Alternative solutions
I understand that may not be possible with JSON output. As an alternative powertools could provide a non-json, terminal-focused, formatter for development.
Im not sure if that meets the tenents
> AWS Lambda only. We optimise for AWS Lambda function environments and supported runtimes only. Utilities might work with web frameworks and non-Lambda environments, though they are not officially supported.
Acknowledgment
- This feature request meets Lambda Powertools Tenets
- Should this be considered in other Lambda Powertools languages? i.e. Python, Java, and .NET
Future readers
Please react with 👍 and your use case to help us understand customer demand.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Shipped