The library provides utility classes for catching, formatting and logging errors for KBC API backend. The provided classes are:
UserException
- The API code should throw this exception in case the exception should be forwarded to the end user.ApplicationException
- The API code should throw this exception in case the exception should be concealed.ExceptionListener
- Symfony Kernel exception listener which ensures the above described behavior, to use it put the following inservices.yaml
:
services:
Keboola\ErrorControl\EventListener\ExceptionListener:
tags:
- { name: kernel.event_listener, event: kernel.exception }
LogProcessor
- Log processor which adds useful fields into every log message and optionally uploads full exception traces to S3. To configure, add the following toservices.yaml
:
services:
Keboola\ErrorControl\Monolog\LogProcessor:
public: true
arguments:
$appName: "%app_name%"
tags:
- { name: monolog.processor, method: processRecord }
Note: You need to have symfony/monolog-bundle
installed for the tag monolog.processor
to work.
LogInfo
- A record class used to pass additional information to the log processor. Use it in application code as:
/** @var LogProcessor $logProcessor */
$logProcessor = $this->container->get('Keboola\\ErrorControl\\Monolog\\LogProcessor');
$logProcessor->setLogInfo(new LogInfo(...));
Use docker-compose run dev composer ci
to run tests locally.
Remove:
services:
Keboola\ErrorControl\Uploader\UploaderFactory:
arguments:
$storageApiUrl: "%storage_api_url%"
$s3Bucket: "%logs_s3_bucket%"
$s3Region: "%logs_s3_bucket_region%"
Also note that 4.x uses Monolog 3.x and php >= 8.1, so you will also need to support these versions
MIT licensed, see LICENSE file.