Hatysik
@Hatysik

Как включить логгирование консолиных команд в Yii2?

Разрабатываю контроллер, который будет запускаться кроном. Соответственно контроллер консольный и информация о запросах к этому контроллеру не логируется в Yii Debugger.

В конфиге console.php:
'bootstrap' => ['log', 'gii','debug'],
    'controllerNamespace' => 'app\commands',
    'modules' => [
        'gii' => 'yii\gii\Module',
        'debug' => [
            'class' => 'yii\debug\Module',
            'allowedIPs' => ['*'],
        ],
    ],


Основная цель - увидеть список запросов к БД, и т.к. в списке запросов в Yii Debugger нет запроса к консольному контроллеру - не могу этого сделать
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
Hatysik
@Hatysik Автор вопроса
Т.к. для меня логирование консольных контроллеров нужно было, чтобы определить какие данные грузить через ->with, то решение оказалось следующее:
после выполнения запроса к БД вешаю обработчик на событие ActiveRecord::EVENT_AFTER_FIND и смотрю объекты каких классов берутся из БД после выполнения запроса. Так определяю какие связи ещё не указаны в ->with
Event::on(ActiveRecord::className(), ActiveRecord::EVENT_AFTER_FIND, function (Event $event) {
   echo $event->sender->className()."\n";
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Akdmeh
@Akdmeh
PHP, Yii2, Music
Насколько я помню, это, к сожалению, невозможно в консольном режиме.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы