Zend \ Log \ Writer \ Stream мешает вводу оболочки

Я использую регистратор Zend Framework для регистрации событий.

$logger = new \Zend\Log\Logger();
$writer = new Zend\Log\Writer\Stream("/path/to/debug.log");
$logger->addWriter($writer);

и войдите в систему с помощью:

$logger->notice('Testing');

Затем я запускаю PHP в оболочке (как фоновый процесс):

(php /path/to/test.php &)

или же

php /path/to/test.php & disown

или же

setsid php '/path/to/test.php'

Но после того, как процесс запущен в фоновом режиме, всякий раз, когда он записывает логи, каретка (мигающая точка ввода) перемещается на другую строку в оболочке, мешая моему вводу. Как я могу заставить регистратор перестать мешать вводу оболочки?

Полные коды следующие:

require_once("vendor/autoload.php");
use Devristo\Phpws\Server\WebSocketServer;
$loop = \React\EventLoop\Factory::create();

// Create a logger
$logger = new \Zend\Log\Logger();
$writer = new Zend\Log\Writer\Stream("/path/to/debug.log");
$logger->addWriter($writer);

// Create WebSocket server
$server = new WebSocketServer("tcp://0.0.0.0:12345", $loop, $logger);
$loop->addPeriodicTimer(1.0, function() use($server, $logger){
$string = get_information();
//$logger->notice("Broadcasting to all clients: $string");
if($string !== null) {
foreach($server->getConnections() as $client) {
$client->sendString($string);
}
}
});

// Bind the server
$server->bind();

// Start the event loop
$loop->run();

постскриптум get_information() просто возвращает простую строку.

2

Решение

Задача ещё не решена.

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

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

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