keboola/api-error-control

API错误控制库 - 用于在KBC API中实现日志记录的实用类

4.2.0 2024-03-15 12:48 UTC

README

Build Status Maintainability Test Coverage

该库提供了用于捕获、格式化和记录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文件。