public function testLoggerMDC() { LoggerMDC::clear(); $layout = new LoggerLayoutPattern('{mdc}'); $message = $layout->formatMessage(new Logger("root"), Logger::INFO, ''); $this->assertEquals('' . PHP_EOL, $message); LoggerMDC::put('foo', 'bar'); $message = $layout->formatMessage(new Logger("root"), Logger::INFO, ''); $this->assertEquals('foo=bar' . PHP_EOL, $message); LoggerMDC::clear(); $layout = new LoggerLayoutPattern('{mdc:foo}'); $message = $layout->formatMessage(new Logger("root"), Logger::INFO, ''); $this->assertEquals('null' . PHP_EOL, $message); LoggerMDC::put('foo', 'bar'); $message = $layout->formatMessage(new Logger("root"), Logger::INFO, ''); $this->assertEquals('bar' . PHP_EOL, $message); }
public function testErrorLayout() { $message = "some-error-message"; $validMDCField = "mdc1"; $invalidMDCField = "%"; LoggerMDC::put($validMDCField, 1); LoggerMDC::put($invalidMDCField, 1); $event = LoggerTestHelper::getErrorEvent($message); $layout = new LoggerLayoutGelf(); $layout->activateOptions(); $layout->setLocationInfo(true); $actual = $layout->format($event); $encodedMessage = json_decode($actual, 1); // Is message a valid json $this->assertNotNull($encodedMessage); // Check basic fields $this->assertNotEmpty($encodedMessage["version"]); $this->assertNotEmpty($encodedMessage["host"]); $this->assertNotEmpty($encodedMessage["short_message"]); $this->assertNotEmpty($encodedMessage["full_message"]); $this->assertNotEmpty($encodedMessage["timestamp"]); $this->assertNotEmpty($encodedMessage["level"]); // Check additional fields $this->assertNotEmpty($encodedMessage["_facility"]); $this->assertNotEmpty($encodedMessage["_thread"]); // Check additional location fields $this->assertNotEmpty($encodedMessage["_file"]); $this->assertNotEmpty($encodedMessage["_line"]); $this->assertNotEmpty($encodedMessage["_class"]); $this->assertNotEmpty($encodedMessage["_method"]); $this->assertInternalType("string", $encodedMessage["version"]); $this->assertInternalType("string", $encodedMessage["host"]); $this->assertInternalType("string", $encodedMessage["short_message"]); $this->assertInternalType("string", $encodedMessage["full_message"]); $this->assertInternalType("float", $encodedMessage["timestamp"]); $this->assertInternalType("integer", $encodedMessage["level"]); $this->assertArrayHasKey("_" . $validMDCField, $encodedMessage); $this->assertArrayNotHasKey("_" . $invalidMDCField, $encodedMessage); LoggerMDC::clear(); }
protected function tearDown() { LoggerMDC::clear(); }
public function testMDC() { LoggerMDC::put('foo', 'bar'); LoggerMDC::put('bla', 'tra'); // Entire context $converter = new LoggerPatternConverterMDC($this->info); $actual = $converter->convert($this->event); $expected = 'foo=bar, bla=tra'; self::assertSame($expected, $actual); // Just foo $converter = new LoggerPatternConverterMDC($this->info, 'foo'); $actual = $converter->convert($this->event); $expected = 'bar'; self::assertSame($expected, $actual); // Non existant key $converter = new LoggerPatternConverterMDC($this->info, 'doesnotexist'); $actual = $converter->convert($this->event); $expected = ''; self::assertSame($expected, $actual); LoggerMDC::clear(); }
public function testMDC() { LoggerMDC::put('foo', 'bar'); LoggerMDC::put('bla', 'tra'); $event = LoggerTestHelper::getErrorEvent("testmessage"); $layout = new LoggerLayoutXml(); $layout->activateOptions(); $actual = $layout->format($event); $thread = $event->getThreadName(); $timestamp = number_format($event->getTimeStamp() * 1000, 0, '', ''); $expected = "<log4php:event logger=\"test\" level=\"ERROR\" thread=\"{$thread}\" timestamp=\"{$timestamp}\">" . PHP_EOL . "<log4php:message><![CDATA[testmessage]]></log4php:message>" . PHP_EOL . "<log4php:properties>" . PHP_EOL . "<log4php:data name=\"foo\" value=\"bar\" />" . PHP_EOL . "<log4php:data name=\"bla\" value=\"tra\" />" . PHP_EOL . "</log4php:properties>" . PHP_EOL . "<log4php:locationInfo class=\"LoggerLoggingEvent\" file=\"NA\" line=\"NA\" " . "method=\"getLocationInformation\" />" . PHP_EOL . "</log4php:event>" . PHP_EOL; self::assertEquals($expected, $actual); LoggerMDC::clear(); }
public function setUp() { LoggerNDC::clear(); LoggerMDC::clear(); parent::setUp(); }