Example #1
0
 public function testReopen()
 {
     $f1 = '/tmp/log1';
     $f2 = '/tmp/log2';
     if (is_file($f1)) {
         unlink($f1);
     }
     if (is_file($f1 . '_tmp')) {
         unlink($f1 . '_tmp');
     }
     if (is_file($f2)) {
         unlink($f2);
     }
     if (is_file($f2 . '_tmp')) {
         unlink($f2 . '_tmp');
     }
     Logger::configure(['appenders' => ['stream1' => ['class' => AppenderStream::class, 'stream' => $f1], 'stream2' => ['class' => AppenderStream::class, 'stream' => $f2]], 'root' => ['appenders' => ['stream1', 'stream2']]]);
     Logger::getRootLogger()->info($expected = uniqid());
     $this->assertSame($expected, file_get_contents($f1));
     $this->assertSame($expected, file_get_contents($f2));
     rename($f1, $f1 . '_tmp');
     rename($f2, $f2 . '_tmp');
     Logger::reopen();
     $this->assertSame('', file_get_contents($f1));
     $this->assertSame('', file_get_contents($f2));
     Logger::getRootLogger()->info($expected = uniqid());
     $this->assertSame($expected, file_get_contents($f1));
     $this->assertSame($expected, file_get_contents($f2));
 }
 protected function beforeRun()
 {
     $signalHandler = $this->getQueue()->getProcessor()->getSignalHandler();
     // даже если сигнал был прислан до подписки, метод dispatch() еще не вызывался,
     // поэтому terminate нормально обработается
     $signalHandler->addHandler(SIGTERM, [$this, 'signalTerminate'], false);
     $signalHandler->addHandler(SIGINT, [$this, 'signalTerminate'], false);
     Logger::reopen();
 }