Здравствуйте!
Столкнулся с проблемой при вызове функции Yii::log() в теле callback-функции воркера RabbitMQ.
Пишу так:
$callback = function($msg) {
Yii::log('Log me please', 'error', 'application');
};
$channel->basic_consume('task_queue', '', false, true, false, false, $callback);
и в логах пусто.
Если же вызвать функцию вне тела callback-функции, то лог пишется. Иначе говоря, роутинг логов настроен правильно.
Таже заметил, что если прекратить выполнение скрипта в теле callback-функции, то лог запишется:
$callback = function($msg) {
Yii::log('Log me please', 'error', 'application');
exit; // лог появился!
};
$channel->basic_consume('task_queue', '', false, true, false, false, $callback);
Из этого я делаю вывод, что имеет место какая-то буферизация логов, который пишутся только по завершению скрипта. А нужно писать в режиме реального времени, поскольку воркер никогда не завершает своей работы.
Буду признателен за помошь!