Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Логирование строки и тела запроса #89

Open
andrewzola opened this issue Oct 5, 2021 · 3 comments
Open

Comments

@andrewzola
Copy link

насколько вообще приемлемо иметь в библиотеке отладочный режим, который будет логировать в журнал регистрации строку и тело запроса

@vbondarevsky
Copy link
Owner

Какой сценарий использования?
Отладить во время разработки? Или понять почему в продакшене перестал работать запрос?

@andrewzola
Copy link
Author

да, хотелось иметь диагностику на проде, когда нет доступа к другим вариантам отладки

vbondarevsky pushed a commit that referenced this issue Nov 17, 2021
* feat: Упрощение разработки своих парсеров и их тестов за счет быстрого создания мока ответа
#71

* test: задействование НовыйОтвет в тесте

* feat: КакИсключение - новый парсер Ответа
+ задействование КакИсключение
+ журналирование строки запроса и части тела ответа (без тела запроса)
+ хранение промежуточных ошибок при проблемах сети и редиректах
#84 #89

* feat: версия поднята до 2.4.2
из-за добавленных новых методов API
slaxxals pushed a commit to slaxxals/Connector that referenced this issue Nov 18, 2021
* feat: Упрощение разработки своих парсеров и их тестов за счет быстрого создания мока ответа
vbondarevsky#71

* test: задействование НовыйОтвет в тесте

* feat: КакИсключение - новый парсер Ответа
+ задействование КакИсключение
+ журналирование строки запроса и части тела ответа (без тела запроса)
+ хранение промежуточных ошибок при проблемах сети и редиректах
vbondarevsky#84 vbondarevsky#89

* feat: версия поднята до 2.4.2
из-за добавленных новых методов API
@malikov-pro
Copy link

Возможно будет полезно.
Организовал у себя мониторинг ошибок HTTP запросов, работает на prod, доработки:

Функция ВызватьHTTPМетод(Сессия, Метод, URL, ДополнительныеПараметры)

	ПодготовленныйЗапрос = ПодготовитьЗапрос(Сессия, Метод, URL, ДополнительныеПараметры);
	
	НастройкиПодключения = НастройкиПодключения(Метод, URL, ДополнительныеПараметры);
	
	Попытка
		
		Ответ = ОтправитьЗапрос(Сессия, ПодготовленныйЗапрос, НастройкиПодключения);
		
		Если НастройкиПодключения.РазрешитьПеренаправление И Ответ.ЭтоРедирект Тогда
			// INFO: по хорошему аутентификацию нужно привести к новых параметрам, но пока будем игнорировать.
			Ответ = ПеренаправитьЗапрос(Сессия, НастройкиПодключения, ПодготовленныйЗапрос, Ответ);
		КонецЕсли;
		
		Ответ.Вставить("ОписаниеОшибки", "");
	Исключение
		Ответ = Новый Структура;
		Ответ.Вставить("ОписаниеОшибки", ОписаниеОшибки());
	КонецПопытки;
	
	Ответ.Вставить("ПодготовленныйЗапрос", ПодготовленныйЗапрос);
	
	Возврат Ответ;

КонецФункции

Далее разбираю и при ошибке фиксирую в ЖР и отправляю в sentry

Процедура ОбработкаОтветаHTTPКоннектор(Ответ, ИмяФункции, МассивКодыСостояния, Отказ) Экспорт
	
	Если Не ПустаяСтрока(Ответ.ОписаниеОшибки) Тогда
		
		Отказ = Истина;
		
		Комментарий = Ответ.ОписаниеОшибки;
		СтруктураЗапросHTTP = нпс_Sentry.НормализоватьЗапросКоннекторHTTP(Ответ.ПодготовленныйЗапрос);
		нпс_Sentry.ДобавитьСтрокуЗапросHTTP(СтруктураЗапросHTTP, Комментарий);
		
		нпс_Лог.Ошибка(ИмяФункции, Комментарий);
		
		Возврат;
		
	КонецЕсли;
	
	Если МассивКодыСостояния.Найти(Ответ.КодСостояния) = Неопределено Тогда
		
		Отказ = Истина;
		
		Комментарий = "Ответ.КодСостояния: " + Ответ.КодСостояния
		+ Символы.ПС + нпс_КоннекторHTTP.КакТекст(Ответ);
		
		СтруктураЗапросHTTP = нпс_Sentry.НормализоватьЗапросКоннекторHTTP(Ответ.ПодготовленныйЗапрос);
		нпс_Sentry.ДобавитьСтрокуЗапросHTTP(СтруктураЗапросHTTP, Комментарий);
		
		нпс_Лог.Ошибка(ИмяФункции, Комментарий);
		
	КонецЕсли;
	
КонецПроцедуры

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants