On Sat, 6 Feb 2021 09:34:23 -0500 Paul Clements wrote:
On Thu, Feb 4, 2021 at 9:06 AM Andrew Beverley <andy@andybev.com> wrote:
The idea is that you throw an exception anywhere:
error __x"Invalid email address: {email}", email => $email
Then it ends up in the fatal_handler to return the custom response
One question: This is all working great and I'm getting the correct HTTP responses, but (at least in development mode) I'm also getting a stack trace logged for every "error" call. Is there maybe a way to suppress the stack trace for expected exceptions? Ideally, I'd like to see stack traces for 500 errors, but not 4xx ones.
Yes, you just need to change the run mode: https://metacpan.org/pod/Log::Report#Run-modes The run mode defines both what is reported and whether there is a stack trace, as per the table of run modes in this section: https://metacpan.org/pod/Log::Report::Dispatcher#Processing-the-message You should just be able to define it in your config (better in environment/ so that you can switch between them), something like this: engines: logger: LogReport: app_name: MyApp dispatchers: default: type: SYSLOG identity: MyApp facility: local0 flags: "pid ndelay nowait" mode: NORMAL