gpt4 book ai didi

PHPUnit 接收系统日志消息?

转载 作者:搜寻专家 更新时间:2023-10-31 21:23:36 24 4
gpt4 key购买 nike

我正在使用一种打开日志的方法测试记录器类:

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 或在我的代码中抑制此消息?

编辑:

这似乎只发生在我记录严重性为“紧急”的消息时,这意味着严重性级别为 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();
}

关于PHPUnit 接收系统日志消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41163822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com