Добрый день. Подскажите как сделать так чтобы я мог например логировать запросы которые идут к API и ответы которые я посылаю.
Я так понимаю что данных функционал надо прикрутить в конфиге beforeRequest и afterRequest подскажите чтобы не велосипедить
логирование ответов запросов к API
-
- Сообщения: 536
- Зарегистрирован: 2016.09.05, 23:21
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: логирование ответов запросов к API
В модуле
Код: Выделить всё
public function beforeAction($action)
{
Yii::debug('Request: ' . Yii::$app->getRequest()->getUrl(), 'api');
return parent::beforeAction($action);
}
public function afterAction($action, $result)
{
Yii::debug('Result: ' . json_encode($result), 'api');
return parent::afterAction($action, $result);
}
Re: логирование ответов запросов к API
можно еще попробовать через встроенный логер. yii::info('message', 'your_category');
Будет писать в файлы что логично. Так как база будет рости, дамп будет рости. А файлы можно затирать время от времени сохраняя у себя на локальной машине.
Будет писать в файлы что логично. Так как база будет рости, дамп будет рости. А файлы можно затирать время от времени сохраняя у себя на локальной машине.
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: логирование ответов запросов к API
debug я для примера привел. Писать можно куда и как душе угодно.
Re: логирование ответов запросов к API
Думаю лучше всего сделать класс Transport с методом send(). И для всех запросов создавать его через dto обьект со всеми нужными параметрами запроса.an.viktory@gmail.com писал(а): ↑2019.09.10, 11:30 Добрый день. Подскажите как сделать так чтобы я мог например логировать запросы которые идут к API и ответы которые я посылаю.
Я так понимаю что данных функционал надо прикрутить в конфиге beforeRequest и afterRequest подскажите чтобы не велосипедить
То есть вызов api:
Код: Выделить всё
$transport = new Transport($dto);
Transport
Код: Выделить всё
$transport->getPrice();
{
$dto->prepareDataForPriceRequest();
$this->send();
}
send() {
$log_data = [ тут твои данные ]; Например $dto->toArray();
Внутри метода сделать Yii::info($log_data, 'your_name');
}
Код: Выделить всё
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
[
'class' => 'yii\log\FileTarget', - Но можно сделать свой класс, если например ты хочешь писать файлы по дням с датой в имени,
'categories' => ['your_name'],
'levels' => ['info', 'error'],
'logFile' => 'your_name/app.log', // папка лога
'logVars' => [],
],
],
],