xervice / log-rabbitmq
2.1.0
2019-08-22 13:34 UTC
Requires
- php: >=7.1.0
- xervice/core: ^4.0.0
- xervice/data-provider: ^2.0.0
- xervice/logger: ^2.0.0
- xervice/rabbitmq: ^3.0.0|^4.0.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-23 01:19:33 UTC
README
安装
composer require xervice/log-rabbitmq
配置
要将 rabbitmq 作为日志提供者使用,您必须在 LoggerDependencyProvider 和 RabbitMQDependencyProvider 中定义它。
<?php namespace App\Logger; use Xervice\Logger\LoggerDependencyProvider as XerviceLoggerDependencyProvider; use Xervice\LogRabbitMq\Business\Log\QueueLogHandler; class LoggerDependencyProvider extends XerviceLoggerDependencyProvider { /** * @return array */ protected function getLogHandler(): array { return [ new QueueLogHandler() ]; } }
<?php namespace App\RabbitMQ; use Xervice\LogRabbitMq\Business\Queue\LogExchange; use Xervice\LogRabbitMq\Business\Queue\LogQueue; use Xervice\RabbitMQ\RabbitMQDependencyProvider as XerviceRabbitMQDependencyProvider; use XerviceTest\LogRabbitMq\Listener\LogListener; class RabbitMQDependencyProvider extends XerviceRabbitMQDependencyProvider { /** * @return array */ protected function getQueues(): array { return [ new LogQueue() ]; } /** * @return array */ protected function getExchanges(): array { return [ new LogExchange() ]; } }
要将 LogHandler 添加为工作进程,您可以扩展 \Xervice\LogRabbitMq\Business\Queue\AbstractLogQueueListener。
示例
<?php namespace XerviceTest\LogRabbitMq\Listener; use DataProvider\LogMessageDataProvider; use Xervice\LogRabbitMq\Business\Queue\AbstractLogQueueListener; class LogListener extends AbstractLogQueueListener { /** * @param \DataProvider\LogMessageDataProvider $dataProvider */ public function handleLog(LogMessageDataProvider $dataProvider) { echo $dataProvider->getTitle(); } }
添加到 RabbitMQDependencyProvider
<?php namespace App\RabbitMQ; use Xervice\RabbitMQ\RabbitMQDependencyProvider as XerviceRabbitMQDependencyProvider; use XerviceTest\LogRabbitMq\Listener\LogListener; class RabbitMQDependencyProvider extends XerviceRabbitMQDependencyProvider { /** * @return array */ protected function getListener(): array { return [ new LogListener() ]; } }