MonologHandler.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace DeviceBundle\Services;
  3. use Buzz\Message\RequestInterface as HttpRequestInterface;
  4. use Monolog\Handler\AbstractProcessingHandler;
  5. use WebserviceBundle\Services\Webservice;
  6. class MonologHandler extends AbstractProcessingHandler
  7. {
  8. /**
  9. * @var Webservice
  10. */
  11. protected $webservice;
  12. /**
  13. * @var string
  14. */
  15. protected $deviceGetUrl;
  16. /**
  17. * @var string
  18. */
  19. protected $deviceLogUrl;
  20. /**
  21. * @param Webservice $webservice
  22. * @param string $deviceGetUrl
  23. * @param string $deviceLogUrl
  24. */
  25. public function __construct(Webservice $webservice, $deviceGetUrl, $deviceLogUrl)
  26. {
  27. parent::__construct();
  28. $this->webservice = $webservice;
  29. $this->deviceGetUrl = $deviceGetUrl;
  30. $this->deviceLogUrl = $deviceLogUrl;
  31. }
  32. /**
  33. * Crea un DeviceLog por REST en la app Base
  34. *
  35. * @param array $record
  36. */
  37. protected function write(array $record)
  38. {
  39. $filters = array(
  40. 'deviceType' => $record['context']['deviceType'],
  41. 'deviceId' => $record['context']['deviceId'],
  42. );
  43. $device = $this->webservice->get($this->deviceGetUrl, $filters);
  44. if ($device) {
  45. $data['device'] = $device[0]['id'];
  46. $data['message'] = $record['formatted'];
  47. $result = $this->webservice->makeRequest($this->deviceLogUrl, HttpRequestInterface::METHOD_POST, $data);
  48. }
  49. }
  50. }