170 похожих чатов

Всем доброго времени суток, возник такой вопрос. Как можно внутреннюю

инфу из медиатора передать в ExceptionMiddleware?
Точнее, есть внутренние переменные (Ids) которые присваиваются каждому запросу, при возникновении исключения мне бы их как-то достать (внутри ExceptionMiddleware), вот не могу придумать как именно это сделать

9 ответов

17 просмотров

А кто присваивает эти переменные запросу?

Sergey- Автор вопроса
Oleg Safonov
А кто присваивает эти переменные запросу?

До передачи запроса в медитр и попадания его в нужных хэндлер, есть несколько классов с интерфейсом IPipelineBehavior, вот там как раз и происходит присваивание нужных ids

Sergey- Автор вопроса

Да, у меня была мысля пихать эти ids в HttpContext, а потом доставать. Но желание напрямик вытащить данные которые присвоились в IPipelineBehavior в случае exception'a, было бы куда лучше, но мне кажется в этот момент процесс уже удаляется и его нет

Sergey
Да, у меня была мысля пихать эти ids в HttpContext...

Наверное и и неправильно там в httpContext лезть. А куда пишется идентификатор этот вообще, представим, что я нахожусь в PipelineBehavior, как получить доступ к идентификаторук?

Sergey- Автор вопроса

О, всё, спасибо большое

Sergey
О, всё, спасибо большое

Вообще, мы у себя делали так. По идее один запрос контроллера - это один вызов медиатора. Мы брали в миддлеваре var operation = $"{controllerName}+{actionName}"; Помещали это в logger.BeginScope(operation); и потом при записи в лог это попадает в структурный лог Ну тут нужно настраивать логгер

Sergey- Автор вопроса
Oleg Safonov
Вообще, мы у себя делали так. По идее один запрос ...

У меня есть такой логгер, но это логгер запроса. А при том объеме что есть проблемно вытащить из какого запроса прилетел exception

Sergey
У меня есть такой логгер, но это логгер запроса. А...

запрос - это в терминах медиатора или http?

Sergey- Автор вопроса
Oleg Safonov
запрос - это в терминах медиатора или http?

В терминах http. На самом деле я и в EceptionMiddleware его тоже дублирую, чтобы можно было быстрее составить подобный запрос на роут. Но вот OperationId нужен для того, чтобы отследить все поэтапные шаги которые выполнялись в медиаторе

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта