# Configuration
You can configure global settings for the EasyErrorHandler package via a configuration file in your application.
# Configuration files
For Laravel applications, the EasyErrorHandler configuration file must be called easy-error-handler.php
and be located
in the config
directory.
For Symfony applications, the EasyErrorHandler configuration file can be a YAML, XML or PHP file located under the
config/packages
directory, with a name like easy_error_handler.<format>
. The root node of the configuration must be
called easy_error_handler
.
# Configuration options
The common configuration options for Laravel and Symfony are as follows:
Configuration | Default | Description |
---|---|---|
bugsnag_enabled | true | Automatically register the error reporter for easy-bugsnag integration. |
bugsnag_ignored_exceptions | [] | List of exceptions that will not be reported to Bugsnag. |
bugsnag_threshold | null | Log level threshold for reporting to Bugsnag. |
error_codes_interface | null | Interface with all error codes. |
logger_exception_log_levels | [] | List of exceptions and their associated log levels. |
logger_ignored_exceptions | [] | List of exceptions that will not be reported to Logger. |
response.code | code | Attribute name for exception code. |
response.exception | exception | Attribute name for exception text. |
response.extended_exception_keys.class | class | Attribute name for exception class. |
response.extended_exception_keys.file | file | Attribute name for exception file. |
response.extended_exception_keys.line | line | Attribute name for exception line. |
response.extended_exception_keys.message | message | Attribute name for exception message. |
response.extended_exception_keys.trace | trace | Attribute name for exception trace. |
response.message | message | Attribute name for user-friendly exception message. |
response.sub_code | sub_code | Attribute name for exception sub-code. |
response.time | time | Attribute name for exception timestamp. |
response.violations | violations | Attribute name for exception violations. |
use_default_builders | true | Use the default set of error response builders. |
use_default_reporters | true | Use the default set of error reporters. |
Laravel has the following additional configuration option:
Configuration | Default | Description |
---|---|---|
use_extended_response | false | Use extended error response containing exception message, trace, etc. |
Symfony has the following additional configuration options:
Configuration | Default | Description |
---|---|---|
bugsnag_ignore_validation_errors | true | Ignore validation errors based on ApiPlatformValidationErrorsResponseBuilder |
override_api_platform_listener | true | If using API Platform (opens new window), override its inbuilt exception handling to use the EasyErrorHandler package. |
transform_validation_errors | true | Transform validation errors response structure based on ApiPlatformValidationErrrorResponseBuilder. |
translation_domain | messages | Symfony translation domain. |
verbose | false | Use extended error response containing exception message, trace, etc. |
# Example configuration files
# Symfony
In Symfony, you could have a configuration file called easy_error_handler.yaml
that looks like the following:
easy_error_handler:
bugsnag_enabled: true
bugsnag_ignored_exceptions:
- InvalidArgumentException
bugsnag_ignore_validation_errors: true
bugsnag_threshold: null
logger_exception_log_level:
InvalidArgumentException: 300
logger_ignored_exceptions:
- App\MyCustomException
override_api_platform_listener: true
response:
code: 'code'
exception: 'exception'
extended_exception_keys:
class: 'class'
file: 'file'
line: 'line'
message: 'message'
trace: 'trace'
message: 'message'
sub_code: 'sub_code'
time: 'time'
violations: 'violations'
transform_validation_errors: true
translation_domain: 'messages'
use_default_builders: true
use_default_reporters: true
verbose: false
# Laravel
In Laravel, the easy-error-handler.php
configuration file could look like the following:
<?php
declare(strict_types=1);
return [
'bugsnag_enabled' => true,
'bugsnag_ignored_exceptions' => [
\InvalidArgumentException::class,
],
'bugsnag_threshold' => null,
'logger_exception_log_levels' => [
\InvalidArgumentException::class => 300,
],
'logger_ignored_exceptions' => [
\App\MyCustomException::class,
],
'response' => [
'code' => 'code',
'exception' => 'exception',
'extended_exception_keys' => [
'class' => 'class',
'file' => 'file',
'line' => 'line',
'message' => 'message',
'trace' => 'trace',
],
'message' => 'message',
'sub_code' => 'sub_code',
'time' => 'time',
'violations' => 'violations',
],
'use_default_builders' => true,
'use_default_reporters' => true,
'use_extended_response' => false,
];