Логгирование в консольном приложении
Логгирование в консольном приложении
Логгирование настроено в конфиге в базу, миграции есть и в остальном приложении все работает, но в консоли никак не выходит. Пишет ошибку
Unable to send log via yii\debug\LogTarget: Exception 'yii\base\UnknownMethodException' with message 'Calling unknown method: yii\console\Request::getAbsoluteUrl()'
Подскажите в чем проблема?
Unable to send log via yii\debug\LogTarget: Exception 'yii\base\UnknownMethodException' with message 'Calling unknown method: yii\console\Request::getAbsoluteUrl()'
Подскажите в чем проблема?
Re: Логгирование в консольном приложении
пытаетесь логировать урл http-реквеста, а в консоли http вообще-то нет.
Re: Логгирование в консольном приложении
Окей. Вот код метода. Вы видите где-то тут какие-то http-запросы?
Код: Выделить всё
public function actionTest() {
Yii::beginProfile('test');
Article::findOne(1);
Yii::endProfile('test');
}
Re: Логгирование в консольном приложении
посмотри на текст ошибки и на ее трейс - код, в котором ошибка там.Brainfuck писал(а): ↑2018.07.12, 16:58Окей. Вот код метода. Вы видите где-то тут какие-то http-запросы?
Код: Выделить всё
public function actionTest() { Yii::beginProfile('test'); Article::findOne(1); Yii::endProfile('test'); }
Re: Логгирование в консольном приложении
Код: Выделить всё
Unable to send log via yii\debug\LogTarget: Exception 'yii\base\UnknownMethodException' with message 'Calling unknown method: yii\console\Request::getAbsoluteUrl()'
in \vendor\yiisoft\yii2\base\Component.php:300
Stack trace:
#0 \vendor\yiisoft\yii2-debug\LogTarget.php(162): yii\base\Component->__call('getAbsoluteUrl', Array)
#1 \vendor\yiisoft\yii2-debug\LogTarget.php(50): yii\debug\LogTarget->collectSummary()
#2 \vendor\yiisoft\yii2-debug\LogTarget.php(125): yii\debug\LogTarget->export()
#3 \vendor\yiisoft\yii2\log\Dispatcher.php(189): yii\debug\LogTarget->collect(Array, true)
#4 \vendor\yiisoft\yii2\log\Logger.php(177): yii\log\Dispatcher->dispatch(Array, true)
#5 [internal function]: yii\log\Logger->flush(true)
#6 {main}
Re: Логгирование в консольном приложении
#0 \vendor\yiisoft\yii2-debug\LogTarget.php(162): yii\base\Component->__call('getAbsoluteUrl', Array)
у вас включена дебаг панель, которая собирает данные о http-реквесте.
у вас включена дебаг панель, которая собирает данные о http-реквесте.
Re: Логгирование в консольном приложении
Нет. Вот конфиг консоли
Код: Выделить всё
<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php')
);
return [
'id' => 'app-console',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'controllerNamespace' => 'console\controllers',
'controllerMap' => [
'fixture' => [
'class' => 'yii\console\controllers\FixtureController',
'namespace' => 'common\fixtures',
],
],
'components' => [
'log' => [
'targets' => [
'db' => [
'class' => 'yii\log\DbTarget',
'levels' => ['error', 'warning', 'trace'],
],
],
],
],
'params' => $params,
];
Re: Логгирование в консольном приложении
ну как нет? я четко вижу в пути до файла "yii2-debug". Поправьте меня, если зрение мне изменяет.
Сам фреймворк как мы видим тут https://github.com/yiisoft/yii2-framewo ... r.json#L65 от дебаг-панели не зависит и точно внутри себя ее нигде не вызывает.
Сам фреймворк как мы видим тут https://github.com/yiisoft/yii2-framewo ... r.json#L65 от дебаг-панели не зависит и точно внутри себя ее нигде не вызывает.
Re: Логгирование в консольном приложении
А я четко вижу свой конфиг который и вам кстати виден теперь. В нем нет подключения дебаг-панели. Я без понятия откуда она там берется.zelenin писал(а): ↑2018.07.12, 17:18 ну как нет? я четко вижу в пути до файла "yii2-debug". Поправьте меня, если зрение мне изменяет.
Сам фреймворк как мы видим тут https://github.com/yiisoft/yii2-framewo ... r.json#L65 от дебаг-панели не зависит и точно внутри себя ее нигде не вызывает.
Re: Логгирование в консольном приложении
вариантов подключения компонентов больше одного. суть одна: в вашем приложении выполняется вот этот код https://github.com/yiisoft/yii2-debug/b ... e.php#L194Brainfuck писал(а): ↑2018.07.12, 17:19А я четко вижу свой конфиг который и вам кстати виден теперь. В нем нет подключения дебаг-панели. Я без понятия откуда она там берется.zelenin писал(а): ↑2018.07.12, 17:18 ну как нет? я четко вижу в пути до файла "yii2-debug". Поправьте меня, если зрение мне изменяет.
Сам фреймворк как мы видим тут https://github.com/yiisoft/yii2-framewo ... r.json#L65 от дебаг-панели не зависит и точно внутри себя ее нигде не вызывает.
Сам Yii это абсолютно точно не делает.
Re: Логгирование в консольном приложении
Т.е. идей у вас нет?zelenin писал(а): ↑2018.07.12, 17:34 вариантов подключения компонентов больше одного. суть одна: в вашем приложении выполняется вот этот код https://github.com/yiisoft/yii2-debug/b ... e.php#L194
Сам Yii это абсолютно точно не делает.
Re: Логгирование в консольном приложении
ну как? я же сказал - в вашем приложении используется дебаг-панель. Дебаг-панель работает для http, а в консоли нет. Место в котором у вас подключается дебаг-панель я найти не могу, т.к. доступа к вашему коду у меня нет.Brainfuck писал(а): ↑2018.07.12, 17:35Т.е. идей у вас нет?zelenin писал(а): ↑2018.07.12, 17:34 вариантов подключения компонентов больше одного. суть одна: в вашем приложении выполняется вот этот код https://github.com/yiisoft/yii2-debug/b ... e.php#L194
Сам Yii это абсолютно точно не делает.
Есть ли у меня идеи? Ну если вам не факты, а идеи нужны, то как вам эти:
- давайте вы поищите в коде подключение дебага
- давайте вы продебажите рантайм приложения для определения на какой стадии в $app->getLog()->targets записывается debug
- давайте вы выложите код приложения желательно со сценарием воспроизведения ошибки для страждущих за вас поискать
Re: Логгирование в консольном приложении
Ничего не понимаю... Я выключил дебаг-панель в common/main-local.php и ошибка пропала. Но ни console/main.php ни console/main-local.php не подтягивают тот конфиг...
Re: Логгирование в консольном приложении
Все отбой - я понял. Общий конфиг подтягивается в файле yii. Тот самый через который я запускаю консольное приложение. Я знал что в common/main-local.php есть подключение панели, но не думал что это влияет на консольное приложение.
Re: Логгирование в консольном приложении
я думаю вы не в ту точку входа смотрите, и соответственно не те конфиги определяете как рабочие в текущем моменте