GelfHandlerLegacyTest.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. /*
  3. * This file is part of the Monolog package.
  4. *
  5. * (c) Jordi Boggiano <j.boggiano@seld.be>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Monolog\Handler;
  11. use Gelf\Message;
  12. use Monolog\Test\TestCase;
  13. use Monolog\Logger;
  14. use Monolog\Formatter\GelfMessageFormatter;
  15. class GelfHandlerLegacyTest extends TestCase
  16. {
  17. public function setUp()
  18. {
  19. if (!class_exists('Gelf\MessagePublisher') || !class_exists('Gelf\Message')) {
  20. $this->markTestSkipped("mlehner/gelf-php not installed");
  21. }
  22. require_once __DIR__ . '/GelfMockMessagePublisher.php';
  23. }
  24. /**
  25. * @covers Monolog\Handler\GelfHandler::__construct
  26. */
  27. public function testConstruct()
  28. {
  29. $handler = new GelfHandler($this->getMessagePublisher());
  30. $this->assertInstanceOf('Monolog\Handler\GelfHandler', $handler);
  31. }
  32. protected function getHandler($messagePublisher)
  33. {
  34. $handler = new GelfHandler($messagePublisher);
  35. return $handler;
  36. }
  37. protected function getMessagePublisher()
  38. {
  39. return new GelfMockMessagePublisher('localhost');
  40. }
  41. public function testDebug()
  42. {
  43. $messagePublisher = $this->getMessagePublisher();
  44. $handler = $this->getHandler($messagePublisher);
  45. $record = $this->getRecord(Logger::DEBUG, "A test debug message");
  46. $handler->handle($record);
  47. $this->assertEquals(7, $messagePublisher->lastMessage->getLevel());
  48. $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());
  49. $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());
  50. $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage());
  51. }
  52. public function testWarning()
  53. {
  54. $messagePublisher = $this->getMessagePublisher();
  55. $handler = $this->getHandler($messagePublisher);
  56. $record = $this->getRecord(Logger::WARNING, "A test warning message");
  57. $handler->handle($record);
  58. $this->assertEquals(4, $messagePublisher->lastMessage->getLevel());
  59. $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());
  60. $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());
  61. $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage());
  62. }
  63. public function testInjectedGelfMessageFormatter()
  64. {
  65. $messagePublisher = $this->getMessagePublisher();
  66. $handler = $this->getHandler($messagePublisher);
  67. $handler->setFormatter(new GelfMessageFormatter('mysystem', 'EXT', 'CTX'));
  68. $record = $this->getRecord(Logger::WARNING, "A test warning message");
  69. $record['extra']['blarg'] = 'yep';
  70. $record['context']['from'] = 'logger';
  71. $handler->handle($record);
  72. $this->assertEquals('mysystem', $messagePublisher->lastMessage->getHost());
  73. $this->assertArrayHasKey('_EXTblarg', $messagePublisher->lastMessage->toArray());
  74. $this->assertArrayHasKey('_CTXfrom', $messagePublisher->lastMessage->toArray());
  75. }
  76. }