| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /*
- * This file is part of the Monolog package.
- *
- * (c) Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Monolog\Handler;
- use Monolog\TestCase;
- use Monolog\Logger;
- use Monolog\Formatter\GelfMessageFormatter;
- class GelfHandlerTest extends TestCase
- {
- public function setUp()
- {
- if (!class_exists("Gelf\MessagePublisher") || !class_exists("Gelf\Message")) {
- $this->markTestSkipped("mlehner/gelf-php not installed");
- }
- require_once __DIR__ . '/GelfMocks.php';
- }
- /**
- * @covers Monolog\Handler\GelfHandler::__construct
- */
- public function testConstruct()
- {
- $handler = new GelfHandler($this->getMessagePublisher());
- $this->assertInstanceOf('Monolog\Handler\GelfHandler', $handler);
- }
- protected function getHandler($messagePublisher)
- {
- $handler = new GelfHandler($messagePublisher);
- return $handler;
- }
- protected function getMessagePublisher()
- {
- return new MockMessagePublisher('localhost');
- }
- public function testDebug()
- {
- $messagePublisher = $this->getMessagePublisher();
- $handler = $this->getHandler($messagePublisher);
- $record = $this->getRecord(Logger::DEBUG, "A test debug message");
- $handler->handle($record);
- $this->assertEquals(LOG_DEBUG, $messagePublisher->lastMessage->getLevel());
- $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());
- $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());
- $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage());
- }
- public function testWarning()
- {
- $messagePublisher = $this->getMessagePublisher();
- $handler = $this->getHandler($messagePublisher);
- $record = $this->getRecord(Logger::WARNING, "A test warning message");
- $handler->handle($record);
- $this->assertEquals(LOG_WARNING, $messagePublisher->lastMessage->getLevel());
- $this->assertEquals('test', $messagePublisher->lastMessage->getFacility());
- $this->assertEquals($record['message'], $messagePublisher->lastMessage->getShortMessage());
- $this->assertEquals(null, $messagePublisher->lastMessage->getFullMessage());
- }
- public function testInjectedGelfMessageFormatter()
- {
- $messagePublisher = $this->getMessagePublisher();
- $handler = $this->getHandler($messagePublisher);
- $handler->setFormatter(new GelfMessageFormatter('mysystem', 'EXT', 'CTX'));
- $record = $this->getRecord(Logger::WARNING, "A test warning message");
- $record['extra']['blarg'] = 'yep';
- $record['context']['from'] = 'logger';
- $handler->handle($record);
- $this->assertEquals('mysystem', $messagePublisher->lastMessage->getHost());
- $this->assertArrayHasKey('_EXTblarg', $messagePublisher->lastMessage->toArray());
- $this->assertArrayHasKey('_CTXfrom', $messagePublisher->lastMessage->toArray());
- }
- }
|