Open andrewzola opened 3 years ago
Какой сценарий использования? Отладить во время разработки? Или понять почему в продакшене перестал работать запрос?
да, хотелось иметь диагностику на проде, когда нет доступа к другим вариантам отладки
Возможно будет полезно. Организовал у себя мониторинг ошибок HTTP запросов, работает на prod, доработки:
Функция ВызватьHTTPМетод(Сессия, Метод, URL, ДополнительныеПараметры)
ПодготовленныйЗапрос = ПодготовитьЗапрос(Сессия, Метод, URL, ДополнительныеПараметры);
НастройкиПодключения = НастройкиПодключения(Метод, URL, ДополнительныеПараметры);
Попытка
Ответ = ОтправитьЗапрос(Сессия, ПодготовленныйЗапрос, НастройкиПодключения);
Если НастройкиПодключения.РазрешитьПеренаправление И Ответ.ЭтоРедирект Тогда
// INFO: по хорошему аутентификацию нужно привести к новых параметрам, но пока будем игнорировать.
Ответ = ПеренаправитьЗапрос(Сессия, НастройкиПодключения, ПодготовленныйЗапрос, Ответ);
КонецЕсли;
Ответ.Вставить("ОписаниеОшибки", "");
Исключение
Ответ = Новый Структура;
Ответ.Вставить("ОписаниеОшибки", ОписаниеОшибки());
КонецПопытки;
Ответ.Вставить("ПодготовленныйЗапрос", ПодготовленныйЗапрос);
Возврат Ответ;
КонецФункции
Далее разбираю и при ошибке фиксирую в ЖР и отправляю в sentry
Процедура ОбработкаОтветаHTTPКоннектор(Ответ, ИмяФункции, МассивКодыСостояния, Отказ) Экспорт
Если Не ПустаяСтрока(Ответ.ОписаниеОшибки) Тогда
Отказ = Истина;
Комментарий = Ответ.ОписаниеОшибки;
СтруктураЗапросHTTP = нпс_Sentry.НормализоватьЗапросКоннекторHTTP(Ответ.ПодготовленныйЗапрос);
нпс_Sentry.ДобавитьСтрокуЗапросHTTP(СтруктураЗапросHTTP, Комментарий);
нпс_Лог.Ошибка(ИмяФункции, Комментарий);
Возврат;
КонецЕсли;
Если МассивКодыСостояния.Найти(Ответ.КодСостояния) = Неопределено Тогда
Отказ = Истина;
Комментарий = "Ответ.КодСостояния: " + Ответ.КодСостояния
+ Символы.ПС + нпс_КоннекторHTTP.КакТекст(Ответ);
СтруктураЗапросHTTP = нпс_Sentry.НормализоватьЗапросКоннекторHTTP(Ответ.ПодготовленныйЗапрос);
нпс_Sentry.ДобавитьСтрокуЗапросHTTP(СтруктураЗапросHTTP, Комментарий);
нпс_Лог.Ошибка(ИмяФункции, Комментарий);
КонецЕсли;
КонецПроцедуры
насколько вообще приемлемо иметь в библиотеке отладочный режим, который будет логировать в журнал регистрации строку и тело запроса