qualitat
@qualitat

Yii2. Проблема с логированием в консольном контроллере запущенном в цикле. Как можно решить?

Привет всем.

Вкратце суть: Есть консольный контроллер унаследованный от BeanstalkController.
Проблема в том что не работают статические методы для логирования.

Yii::info('message', 'category');

Теперь подробнее.

Код контроллера
class TestWorkerController extends BeanstalkController
{

    const DELAY_PRIORITY = "1000";
    const DELAY_TIME = 1;
    const DELAY_MAX = 3;

    public function listenTubes()
    {
        return ['log'];
    }

    public function actionLog($job)
    {

        $data = $job->getData();

        print_r($data);

        \Yii::info('111111', 'cat');

        try {
            \Yii::info('222222', 'cat');
            return self::DELETE;

        } catch (\Exception $e) {

            fwrite(STDERR, Console::ansiFormat($e . "\n", [Console::FG_BLUE]));
            return self::BURY;
        }

    }


}


Запускается ./yii test-worker

Добавление новой задачи
Yii::$app->beanstalk->putInTube('log', $data, 100, 0);


Примечания:
- Логирование без проблем работает в других контроллерах унаследованных от yii\console\Controller
- Сам воркер TestWorkerController также работает хорошо и выполняет все поставленные задачи (кроме логирования).

Подскажите путь для решения этой проблемы.

Заранее благодарен.
  • Вопрос задан
  • 330 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы