dir = dirname(__FILE__) . '/../../../../target/phpunit'; @mkdir($this->dir); @unlink($this->dir.'/TEST-rolling.txt'); @unlink($this->dir.'/TEST-rolling.txt.1'); @unlink($this->dir.'/TEST-rolling.txt.2'); } public function testRequiresLayout() { $appender = new LoggerAppenderRollingFile(); self::assertTrue($appender->requiresLayout()); } public function testMaxFileSize() { $appender = new LoggerAppenderRollingFile("mylogger"); $e = $appender->setMaxFileSize('1KB'); self::assertEquals($e, '1024'); $e = $appender->setMaxFileSize('2KB'); self::assertEquals($e, '2048'); $e = $appender->setMaxFileSize('1MB'); self::assertEquals($e, '1048576'); $e = $appender->setMaxFileSize('3MB'); self::assertEquals($e, '3145728'); $e = $appender->setMaxFileSize('1GB'); self::assertEquals($e, '1073741824'); $e = $appender->setMaxFileSize('10000'); self::assertEquals($e, '10000'); $e = $appender->setMaxFileSize('BLUB'); self::assertEquals($e, '10000'); $e = $appender->setMaxFileSize('100.5'); self::assertEquals($e, '100'); $e = $appender->setMaxFileSize('1000.6'); self::assertEquals($e, '1000'); $e = $appender->setMaxFileSize('1.5MB'); self::assertEquals($e, '1048576'); } public function testSetFileName() { $appender = new LoggerAppenderRollingFile("mylogger"); $appender->setFile($this->dir.'/../././phpunit/doesnotexist.log'); $expandedFileName = self::readAttribute($appender, 'expandedFileName'); $expectedFilePattern = '/' . implode(preg_quote(DIRECTORY_SEPARATOR, '/'), array('target', 'phpunit', 'doesnotexist\.log')) . '$/'; self::assertEquals(preg_match($expectedFilePattern, $expandedFileName), 1, $expandedFileName); } public function testSimpleLogging() { $layout = new LoggerLayoutSimple(); $appender = new LoggerAppenderRollingFile("mylogger"); $appender->setFile($this->dir.'/TEST-rolling.txt'); $appender->setLayout($layout); $appender->setMaxFileSize('1KB'); $appender->setMaxBackupIndex(2); $appender->activateOptions(); $event = new LoggerLoggingEvent('LoggerAppenderFileTest', new Logger('mycategory'), LoggerLevel::getLevelWarn(), "my message123"); for($i = 0; $i < 1000; $i++) { $appender->append($event); } $event = new LoggerLoggingEvent('LoggerAppenderFileTest', new Logger('mycategory'), LoggerLevel::getLevelWarn(), "my messageXYZ"); $appender->append($event); $appender->close(); $file = $this->dir.'/TEST-rolling.txt'; $data = file($file); $line = $data[count($data)-1]; $e = "WARN - my messageXYZ".PHP_EOL; self::assertEquals($e, $line); $file = $this->dir.'/TEST-rolling.txt.1'; $data = file($file); $line = $data[count($data)-1]; $e = "WARN - my message123".PHP_EOL; foreach($data as $r) { self::assertEquals($e, $r); } $file = $this->dir.'/TEST-rolling.txt.2'; $data = file($file); $line = $data[count($data)-1]; $e = "WARN - my message123".PHP_EOL; foreach($data as $r) { self::assertEquals($e, $r); } if(file_exists($this->dir.'/TEST-rolling.txt.3')) { self::assertTrue(false); } } public function testLoggingViaLogger() { $logger = Logger::getLogger('mycat'); $logger->setAdditivity(false); $layout = new LoggerLayoutSimple(); $appender = new LoggerAppenderRollingFile("mylogger"); $appender->setFile($this->dir.'/TEST-rolling.txt'); $appender->setLayout($layout); $appender->setMaxFileSize('1KB'); $appender->setMaxBackupIndex(2); $appender->activateOptions(); $logger->addAppender($appender); for($i = 0; $i < 1000; $i++) { $logger->warn("my message123"); } $logger->warn("my messageXYZ"); $file = $this->dir.'/TEST-rolling.txt'; $data = file($file); $line = $data[count($data)-1]; $e = "WARN - my messageXYZ".PHP_EOL; self::assertEquals($e, $line); $file = $this->dir.'/TEST-rolling.txt.1'; $data = file($file); $line = $data[count($data)-1]; $e = "WARN - my message123".PHP_EOL; foreach($data as $r) { self::assertEquals($e, $r); } $file = $this->dir.'/TEST-rolling.txt.2'; $data = file($file); $line = $data[count($data)-1]; $e = "WARN - my message123".PHP_EOL; foreach($data as $r) { self::assertEquals($e, $r); } if(file_exists($this->dir.'/TEST-rolling.txt.3')) { self::assertTrue(false); } } protected function tearDown() { @unlink($this->dir.'/TEST-rolling.txt'); @unlink($this->dir.'/TEST-rolling.txt.1'); @unlink($this->dir.'/TEST-rolling.txt.2'); @rmdir($this->dir); } }