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));
 }
 public function testGetLayoutExists()
 {
     $hierarchy = new LoggerHierarchy();
     $layout = new LayoutSimple();
     $hierarchy->setLayout('simple', $layout);
     $this->assertSame($layout, $hierarchy->getLayout('simple'));
     $this->assertSame(['simple' => $layout], $hierarchy->getLayoutMap());
 }
Beispiel #3
0
 /**
  * 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();
 }
 public function getLayout($name)
 {
     try {
         return parent::getLayout($name);
     } catch (\Mougrim\Logger\LoggerConfigurationException $exception) {
         throw new LoggerConfigurationException($exception->getMessage(), $exception->getCode(), $exception);
     }
 }
 /**
  * @param LoggerHierarchy $hierarchy
  * @param $config
  *
  * @return AppenderAbstract
  *
  * @throws LoggerException
  */
 private function createAppender(LoggerHierarchy $hierarchy, $config)
 {
     if (isset($config['layout'])) {
         if (is_string($config['layout'])) {
             $config['layout'] = $hierarchy->getLayout($config['layout']);
         } elseif (is_array($config['layout'])) {
             $config['layout'] = $this->createLayout($config['layout']);
         } else {
             LoggerPolicy::processConfigurationError('Invalid logger layout description');
             unset($config['layout']);
         }
     }
     /** @noinspection PhpIncompatibleReturnTypeInspection */
     return $this->createObject($config);
 }