New in Symfony 5.4: Configurable Exceptions
November 15, 2021 • Published by Javier Eguiluz
Symfony 5.4 is backed by:
Contributed by
Grégoire Pineau
in #42244.
In Symfony applications, logging is available either via Symfony's built-in logger and or via the Monolog logger and its tight integration with Symfony. When using Monolog you can access to features such as excluding certain HTTP codes from logs and logging messages to different files.
In Symfony 5.4 we've improved the logger with a new feature to make exceptions
configurable per class. Using the new framework.exceptions
option you can
now define the log level and the HTTP status of the exceptions associated to a
certain class:
1 2 3 4 5 6 7 8 9
# config/packages/framework.yaml
framework:
exceptions:
Symfony\Component\HttpKernel\Exception\BadRequestHttpException:
log_level: debug
status_code: 422
App\Something\Exception\SomeException:
log_level: alert
status_code: 503
Although this example uses the YAML config format, this feature is also available when using XML or PHP as the config format.
Help the Symfony project!
As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.
For example, I throw a "FrontendException" for errors that should be reported in an API response. I have an onKernelException listener that will translate those exception messages set the response to that message with some additional info, with status code 400.
Is there any way to replicate that sort of behavior with this system?