keboola /api-error-control
API错误控制库 - 用于在KBC API中实现日志记录的实用类
4.2.0
2024-03-15 12:48 UTC
Requires
- php: ^8.2
- ext-json: *
- keboola/common-exceptions: ^1.0
- monolog/monolog: ^2.0|^3.0
- symfony/http-foundation: ^5.0|^6.0
- symfony/http-kernel: ^5.0|^6.0
Requires (Dev)
- keboola/coding-standard: >=13.0
- phpstan/phpstan: ^1.8
- phpstan/phpstan-phpunit: ^1.1
- phpstan/phpstan-symfony: ^1.1
- phpunit/phpunit: ^9.5
README
该库提供了用于捕获、格式化和记录KBC API后端错误的实用类。提供的类有:
UserException
- 如果异常应转发给最终用户,则API代码应抛出此异常。ApplicationException
- 如果异常应隐藏,则API代码应抛出此异常。ExceptionListener
- Symfony Kernel异常监听器,确保上述描述的行为,要使用它,请在services.yaml
中添加以下内容:
services: Keboola\ErrorControl\EventListener\ExceptionListener: tags: - { name: kernel.event_listener, event: kernel.exception }
LogProcessor
- 日志处理器,将有用的字段添加到每条日志消息中,并可选择将完整的异常跟踪上传到S3。要配置,请将以下内容添加到services.yaml
:
services: Keboola\ErrorControl\Monolog\LogProcessor: public: true arguments: $appName: "%app_name%" tags: - { name: monolog.processor, method: processRecord }
注意:您需要安装symfony/monolog-bundle
才能使monolog.processor
标签正常工作。
LogInfo
- 用于将附加信息传递给日志处理器的记录类。在应用程序代码中使用它:
/** @var LogProcessor $logProcessor */ $logProcessor = $this->container->get('Keboola\\ErrorControl\\Monolog\\LogProcessor'); $logProcessor->setLogInfo(new LogInfo(...));
开发
使用docker-compose run dev composer ci
在本地运行测试。
从3.x迁移到4.x
删除
services: Keboola\ErrorControl\Uploader\UploaderFactory: arguments: $storageApiUrl: "%storage_api_url%" $s3Bucket: "%logs_s3_bucket%" $s3Region: "%logs_s3_bucket_region%"
注意,4.x使用Monolog 3.x和php >= 8.1,因此您还需要支持这些版本。
许可证
MIT许可证,请参阅LICENSE文件。