@SalaDIN_91

Почему YII не записывает данные в log?

В приложении есть консольные команды работающие. Хочу писать лог при их использовании. В конфиг файле console.php добавил Цель с категорией produceStatisticByDay.
'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning',],
                ],
                [
                    'class' => 'yii\log\FileTarget',
                    'logFile' => '@runtime/logs/produceStatisticByDay.log',
                    'levels' => ['info'],
                    'categories' => ['produceStatisticByDay'],
                ]
            ],
        ],

Вызываю как приложением так и через логер, но результат 0. В чём может быть ошибка?
public function actionPartnerProduceStatistic($partnerID, $startDate, $endDate = null)
    {
        $format = ' Загружаем статистику по товарам для партнёра %d от %s %s ' . "\n";
        echo sprintf($format, $partnerID, $startDate, $endDate != null ? 'до ' . $endDate : null);
        Yii::info('produce log', 'produceStatisticByDay');
        Yii::info('app log');
        Yii::getLogger()->log('produce log via log', 0 , 'produceStatisticByDay');
        Yii::getLogger()->log('app log via log',0 );
        (new BackStatLoadingService())->createProduceStatForPartner($partnerID, $startDate, $endDate);
        return ExitCode::OK;
    }
  • Вопрос задан
  • 709 просмотров
Решения вопроса 1
@SalaDIN_91 Автор вопроса
Решение оказалось куда проще, у приложения не хватало прав на сервере. После того как добавили права всё заработало как часы
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
1. Проверьте, указан ли компонент в предзагрузке bootstrap
2. Попробуйте указать у цели значения flushInterval и exportInterval равными 1, например:
'log' => [
    'flushInterval' => 1,
    'targets' => [
        [
            'class' => 'yii\log\FileTarget',
            'exportInterval' => 1,
        ],
    ],
],
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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