Я не уверен, что это ошибка в YII или я делаю неправильный подход. Я создаю внутренний процесс, который запускается без остановки, а регистрация — это то, что имеет решающее значение.
Я создал консольное приложение. Моя регистрация работает, когда я делаю это:
public function actionTest(){
Yii::log( "testing", 'error', 'worker.*');
return;
}
Я могу видеть, что «тестирование» зарегистрировано в файле worker.log, который находится в папке времени выполнения>
Однако, когда я создаю бесконечный цикл, я не вижу ничего, что регистрируется:
public function actionTest(){
while(1){
Yii::log( "testing", 'error', 'worker.*');
echo 'running';
usleep(5000000);
}
}
Файл worker.log пуст.
Вот параметр конфигурации для worker.log в console.php:
array(
'class'=>'CFileLogRoute',
'categories' => 'worker.*',
'logFile' => 'worker.log'
)
По соображениям производительности по умолчанию Yii выводит записи журнала в конце запроса ИЛИ, когда CLogger :: AutoFlash лимит сообщений достигнут, ЕСЛИ CLogger :: автосамосвалов установлен в правда.
В вашем случае это событие никогда не происходит. Чтобы исправить это у вас есть несколько вариантов:
Других решений пока нет …