PHPUnit 接收系统日志消息?
PHPUnit picking up on syslog messages?
我正在测试一个记录器 class,它使用一种打开日志的方法:
openlog($this->identifier, $this->option, $this->facility);
syslog($level, $message)
closelog();
我的记录器写入的 $facility
当前设置为 LOCAL0
当我对我的记录器进行单元测试时,我收到以下消息:
Broadcast message from systemd-journald@myWS:
phpserver7.0[9125]: Logger message
如何使用 PHPUnit 或在我的代码中抑制此消息?
编辑:
这似乎只发生在我记录严重性为 "emergency" 意味着严重性级别为 0 的消息时。
https://en.wikipedia.org/wiki/Syslog#Severity_level
维基百科指出:
This level should not be used by applications.
尽管如此,它仍然是 PSR-3 记录器摘要的一部分,所以我希望能够使用 PHPUnit 抑制消息。
在您的测试方法中,您可以通过在产生输出的调用周围包装一个输出缓冲区来抑制输出。示例:
/**
* @preserveGlobalState disabled
* @runInSeparateProcess
*/
public function testOutputCanSend()
{
ob_start();
// Do some stuff here that outputs directly, e.g
openlog($this->identifier, $this->option, $this->facility);
syslog($level, $message)
closelog();
ob_end_clean();
}
我正在测试一个记录器 class,它使用一种打开日志的方法:
openlog($this->identifier, $this->option, $this->facility);
syslog($level, $message)
closelog();
我的记录器写入的 $facility
当前设置为 LOCAL0
当我对我的记录器进行单元测试时,我收到以下消息:
Broadcast message from systemd-journald@myWS:
phpserver7.0[9125]: Logger message
如何使用 PHPUnit 或在我的代码中抑制此消息?
编辑:
这似乎只发生在我记录严重性为 "emergency" 意味着严重性级别为 0 的消息时。
https://en.wikipedia.org/wiki/Syslog#Severity_level
维基百科指出:
This level should not be used by applications.
尽管如此,它仍然是 PSR-3 记录器摘要的一部分,所以我希望能够使用 PHPUnit 抑制消息。
在您的测试方法中,您可以通过在产生输出的调用周围包装一个输出缓冲区来抑制输出。示例:
/**
* @preserveGlobalState disabled
* @runInSeparateProcess
*/
public function testOutputCanSend()
{
ob_start();
// Do some stuff here that outputs directly, e.g
openlog($this->identifier, $this->option, $this->facility);
syslog($level, $message)
closelog();
ob_end_clean();
}