PHPUnit забирает сообщения системного журнала?

Я тестирую класс регистратора с помощью метода, который открывает журнал следующим образом:

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

Википедия утверждает:

Этот уровень не должен использоваться приложениями.

Тем не менее, это часть абстрактного логгера PSR-3, поэтому я просто хотел бы иметь возможность подавить сообщение с помощью PHPUnit.

2

Решение

В вашем тестовом методе вы можете подавить вывод, обернув буфер вывода вокруг вашего вызова, который производит вывод. Пример:

/**
* @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();
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]