public function testDecide() { $filter = new LoggerFilterDenyAll(); $events = array(LoggerTestHelper::getTraceEvent(), LoggerTestHelper::getDebugEvent(), LoggerTestHelper::getInfoEvent(), LoggerTestHelper::getWarnEvent(), LoggerTestHelper::getErrorEvent(), LoggerTestHelper::getFatalEvent()); foreach ($events as $event) { $actual = $filter->decide($event); self::assertEquals(LoggerFilter::DENY, $actual); } }
protected function setUp() { if (!extension_loaded('mongo')) { $this->markTestSkipped('The Mongo extension is not available.'); } else { $this->appender = new LoggerAppenderMongoDB('mongo_appender'); $this->event = LoggerTestHelper::getErrorEvent('mongo logging event', 'test_mongo'); } }
public function testActivationDoesNotCreateTheFile() { $path = PHPUNIT_TEMP_DIR . "/doesnotexisthopefully.log"; @unlink($path); $appender = new LoggerAppenderFile(); $appender->setFile($path); $appender->activateOptions(); self::assertFalse(file_exists($path)); $event = LoggerTestHelper::getInfoEvent('bla'); $appender->append($event); self::assertTrue(file_exists($path)); }
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 testComplexLayout() { $config = LoggerTestHelper::getEchoPatternConfig($this->pattern); Logger::configure($config); ob_start(); $log = Logger::getLogger('LoggerTest'); $log->error("my message"); $line = __LINE__; $actual = ob_get_contents(); ob_end_clean(); $file = __FILE__; $class = __CLASS__; $method = __FUNCTION__; $expected = "ERROR LoggerTest: my message from {$class}::{$method}() in {$file} at {$line}" . PHP_EOL; self::assertSame($expected, $actual); Logger::resetConfiguration(); }
public function testSimpleLogging() { $appender = $this->createRolloverAppender(); $event = LoggerTestHelper::getWarnEvent("my message123"); for ($i = 0; $i < 1000; $i++) { $appender->append($event); } $appender->append(LoggerTestHelper::getWarnEvent("my messageXYZ")); $appender->close(); $file = PHPUNIT_TEMP_DIR . '/TEST-rolling.txt'; $data = file($file); $line = $data[count($data) - 1]; $e = "WARN - my messageXYZ" . PHP_EOL; self::assertEquals($e, $line); $file = PHPUNIT_TEMP_DIR . '/TEST-rolling.txt.1'; $this->checkFileContent($file); $file = PHPUNIT_TEMP_DIR . '/TEST-rolling.txt.2'; $this->checkFileContent($file); // Should not roll over three times $this->assertFalse(file_exists(PHPUNIT_TEMP_DIR . '/TEST-rolling.txt.3')); }
public function testPatterns() { // Create some data to test with LoggerMDC::put('key1', 'valueofkey1'); LoggerMDC::put('key2', 'valueofkey2'); LoggerMDC::put(3, 'valueofkey3'); $expected = array('key1' => 'valueofkey1', 'key2' => 'valueofkey2', 3 => 'valueofkey3'); $actual = LoggerMDC::getMap(); self::assertSame($expected, $actual); $event = LoggerTestHelper::getInfoEvent("Test message"); // Pattern with 1 key $actual = $this->formatEvent($event, $this->pattern1); $expected = "INFO test: valueofkey1 Test message"; self::assertEquals($expected, $actual); // Pattern with 2 keys $actual = $this->formatEvent($event, $this->pattern2); $expected = "INFO test: valueofkey1 valueofkey2 Test message"; self::assertEquals($expected, $actual); // Pattern with 3 keys (one numeric) $actual = $this->formatEvent($event, $this->pattern3); $expected = "INFO test: valueofkey1 valueofkey2 valueofkey3 Test message"; self::assertEquals($expected, $actual); // Pattern with non-existant key $actual = $this->formatEvent($event, $this->pattern4); $expected = "INFO test: Test message"; self::assertEquals($expected, $actual); // Pattern with an empty key $actual = $this->formatEvent($event, $this->pattern5); $expected = "INFO test: key1=valueofkey1, key2=valueofkey2, 3=valueofkey3 Test message"; self::assertEquals($expected, $actual); // Test key removal LoggerMDC::remove('key1'); $value = LoggerMDC::get('key1'); self::assertEquals('', $value); // Pattern with 1 key, now removed $actual = $this->formatEvent($event, $this->pattern1); $expected = "INFO test: Test message"; self::assertEquals($expected, $actual); }
public function testFormattingPadRight() { $event = LoggerTestHelper::getInfoEvent('0'); $info = new LoggerFormattingInfo(); $info->min = 5; $info->padLeft = false; $converter = new LoggerPatternConverterMessage($info); $actual = ""; $converter->format($actual, $event); $expected = "0 "; self::assertSame($expected, $actual); }
public function testDenyConfig() { $config = LoggerTestHelper::getEchoConfig(); // Add filter which denies INFO events $config['appenders']['default']['filters'] = array(array('class' => 'LoggerFilterLevelMatch', 'params' => array('levelToMatch' => 'info', 'acceptOnMatch' => false))); Logger::configure($config); $logger = Logger::getRootLogger(); ob_start(); $logger->trace('Test'); $logger->debug('Test'); $logger->info('Test'); $logger->warn('Test'); $logger->error('Test'); $logger->fatal('Test'); $actual = ob_get_clean(); // Should log all except info $expected = "TRACE - Test" . PHP_EOL . "DEBUG - Test" . PHP_EOL . "WARN - Test" . PHP_EOL . "ERROR - Test" . PHP_EOL . "FATAL - Test" . PHP_EOL; $this->assertSame($expected, $actual); }
public function testChangedDateFormat() { $event = LoggerTestHelper::getWarnEvent("my message"); $appender = new LoggerAppenderDailyFile(); $appender->setDatePattern('Y'); $appender->setFile(PHPUNIT_TEMP_DIR . '/TEST-daily.txt.%s'); $appender->activateOptions(); $appender->append($event); $appender->close(); $actual = file_get_contents(PHPUNIT_TEMP_DIR . '/TEST-daily.txt.' . date("Y")); $expected = "WARN - my message" . PHP_EOL; self::assertEquals($expected, $actual); }
public function testAppend() { /** @var $appender LoggerAppenderGraylog2 */ $appender = $this->getMock('LoggerAppenderGraylog2', array('createConnection', 'closeConnection')); $fp = fopen("php://temp", "w+"); $appender->expects($this->once())->method('createConnection')->will($this->returnValue($fp)); $appender->expects($this->once())->method('closeConnection')->will($this->returnValue(true)); $shortMessage = "Some logging event"; $event = LoggerTestHelper::getDebugEvent($shortMessage); $appender->doAppend($event); rewind($fp); $message = stream_get_contents($fp); $this->assertNotEmpty($message); }
public function testNonUnicodeCharsReplacement() { $invalidUtf8String = str_repeat(chr(193), 10); $event = LoggerTestHelper::getErrorEvent($invalidUtf8String); $layout = new LoggerLayoutGelf(); $layout->activateOptions(); $this->assertEquals(str_repeat("?", mb_strlen($invalidUtf8String)), $layout->getShortMessage($event)); }