public function testReopen() { $firstLog = '/tmp/first_log'; $firstLogTmp = '/tmp/first_log_tmp'; $secondLog = '/tmp/second_log'; $secondLogTmp = '/tmp/second_log_tmp'; if (is_file($firstLog)) { unlink($firstLog); } if (is_file($firstLogTmp)) { unlink($firstLogTmp); } if (is_file($secondLog)) { unlink($secondLog); } if (is_file($secondLogTmp)) { unlink($secondLogTmp); } $hierarchy = new LoggerHierarchy(); $hierarchy->setAppender('first', $firstAppender = new AppenderStream($firstLog)); $hierarchy->setAppender('second', $secondAppender = new AppenderStream($secondLog)); $rootLogger = $hierarchy->getRootLogger(); $rootLogger->addAppender($firstAppender); $rootLogger->addAppender($secondAppender); rename($firstLog, $firstLogTmp); rename($secondLog, $secondLog); $hierarchy->reopen(); $rootLogger->info($expected = uniqid()); $this->assertSame($expected, file_get_contents($firstLog)); $this->assertSame($expected, file_get_contents($secondLog)); }
/** * Reopen log appender stream, what have support * Usable in forks, SIGHUP handlers etc. */ public static function reopen() { if (!self::$isConfigured) { static::configure(); } self::$hierarchy->reopen(); }