2
0

GelfMessageFormatterTest.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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\Formatter;
  11. use Monolog\Logger;
  12. class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase
  13. {
  14. /**
  15. * @covers Monolog\Formatter\GelfMessageFormatter::format
  16. */
  17. public function testDefaultFormatter()
  18. {
  19. $formatter = new GelfMessageFormatter();
  20. $record = array(
  21. 'level' => Logger::ERROR,
  22. 'level_name' => 'ERROR',
  23. 'channel' => 'meh',
  24. 'context' => array(),
  25. 'datetime' => new \DateTime("@0"),
  26. 'extra' => array(),
  27. 'message' => 'log',
  28. );
  29. $message = $formatter->format($record);
  30. $this->assertInstanceOf('Gelf\Message', $message);
  31. $this->assertEquals(0, $message->getTimestamp());
  32. $this->assertEquals('log', $message->getShortMessage());
  33. $this->assertEquals('meh', $message->getFacility());
  34. $this->assertEquals(null, $message->getLine());
  35. $this->assertEquals(null, $message->getFile());
  36. $this->assertEquals(LOG_ERR, $message->getLevel());
  37. $this->assertNotEmpty($message->getHost());
  38. $formatter = new GelfMessageFormatter('mysystem');
  39. $message = $formatter->format($record);
  40. $this->assertInstanceOf('Gelf\Message', $message);
  41. $this->assertEquals('mysystem', $message->getHost());
  42. }
  43. /**
  44. * @covers Monolog\Formatter\GelfMessageFormatter::format
  45. */
  46. public function testFormatWithFileAndLine()
  47. {
  48. $formatter = new GelfMessageFormatter();
  49. $record = array(
  50. 'level' => Logger::ERROR,
  51. 'level_name' => 'ERROR',
  52. 'channel' => 'meh',
  53. 'context' => array('from' => 'logger'),
  54. 'datetime' => new \DateTime("@0"),
  55. 'extra' => array('file' => 'test', 'line' => 14),
  56. 'message' => 'log',
  57. );
  58. $message = $formatter->format($record);
  59. $this->assertInstanceOf('Gelf\Message', $message);
  60. $this->assertEquals('test', $message->getFile());
  61. $this->assertEquals(14, $message->getLine());
  62. }
  63. /**
  64. * @covers Monolog\Formatter\GelfMessageFormatter::format
  65. */
  66. public function testFormatWithContext()
  67. {
  68. $formatter = new GelfMessageFormatter();
  69. $record = array(
  70. 'level' => Logger::ERROR,
  71. 'level_name' => 'ERROR',
  72. 'channel' => 'meh',
  73. 'context' => array('from' => 'logger'),
  74. 'datetime' => new \DateTime("@0"),
  75. 'extra' => array('key' => 'pair'),
  76. 'message' => 'log'
  77. );
  78. $message = $formatter->format($record);
  79. $this->assertInstanceOf('Gelf\Message', $message);
  80. $message_array = $message->toArray();
  81. $this->assertArrayHasKey('_ctxt_from', $message_array);
  82. $this->assertEquals('logger', $message_array['_ctxt_from']);
  83. // Test with extraPrefix
  84. $formatter = new GelfMessageFormatter(null, null, 'CTX');
  85. $message = $formatter->format($record);
  86. $this->assertInstanceOf('Gelf\Message', $message);
  87. $message_array = $message->toArray();
  88. $this->assertArrayHasKey('_CTXfrom', $message_array);
  89. $this->assertEquals('logger', $message_array['_CTXfrom']);
  90. }
  91. /**
  92. * @covers Monolog\Formatter\GelfMessageFormatter::format
  93. */
  94. public function testFormatWithExtra()
  95. {
  96. $formatter = new GelfMessageFormatter();
  97. $record = array(
  98. 'level' => Logger::ERROR,
  99. 'level_name' => 'ERROR',
  100. 'channel' => 'meh',
  101. 'context' => array('from' => 'logger'),
  102. 'datetime' => new \DateTime("@0"),
  103. 'extra' => array('key' => 'pair'),
  104. 'message' => 'log'
  105. );
  106. $message = $formatter->format($record);
  107. $this->assertInstanceOf('Gelf\Message', $message);
  108. $message_array = $message->toArray();
  109. $this->assertArrayHasKey('_key', $message_array);
  110. $this->assertEquals('pair', $message_array['_key']);
  111. // Test with extraPrefix
  112. $formatter = new GelfMessageFormatter(null, 'EXT');
  113. $message = $formatter->format($record);
  114. $this->assertInstanceOf('Gelf\Message', $message);
  115. $message_array = $message->toArray();
  116. $this->assertArrayHasKey('_EXTkey', $message_array);
  117. $this->assertEquals('pair', $message_array['_EXTkey']);
  118. }
  119. }