예제 #1
0
 public function testSetAndEnableRequiredMessage()
 {
     // Remove all the appenders
     $this->logger->removeAppender('console');
     $this->logger->removeAppender('splunk');
     $this->logger->removeAppender('null');
     // Create a new one
     $appender = new Console();
     // Remove the console stream and replace it with a memory stream.
     $streamProp = new ReflectionProperty($appender, 'fp');
     $memStream = \fopen('php://memory', 'rw');
     $streamProp->setAccessible(true);
     $streamProp->setValue($appender, $memStream);
     // now add the new Console, with memory stream
     $this->logger->addAppender($appender);
     $this->logger->setAndEnableRequiredMessage('this is a required message');
     // log something
     $expected = 'Test Log Message' . PHP_EOL;
     $this->logger->info($expected, []);
     $expected = 'this is a required message Test Log Message';
     // see what happened!
     \fseek($memStream, 0);
     $actual = \stream_get_contents($memStream);
     $this->assertEquals(trim(preg_replace('/\\s+/', ' ', $expected)), trim(preg_replace('/\\s+/', ' ', $actual)));
     $pos = ftell($memStream);
     $this->logger->setAndEnableRequiredMessage('this is a required {MESSAGE}', true);
     $this->logger->setAndEnableRequiredContext(['some' => 'thing']);
     // log something
     $expected = 'Test Log Message' . PHP_EOL;
     $this->logger->info($expected, []);
     $expected = 'this is a required Test Log Message';
     // see what happened!
     \fseek($memStream, $pos);
     $actual = \stream_get_contents($memStream);
     $this->assertEquals(trim(preg_replace('/\\s+/', ' ', $expected)), trim(preg_replace('/\\s+/', ' ', $actual)));
 }