Как уникально идентифицировать каждый запрос в приложении ASP.NET Core 2 (для ведения журнала) - PullRequest
0 голосов
/ 10 мая 2018

В приложении ASP.NET Core 2 мне нужен уникальный идентификатор (например, Guid) для каждого запроса, чтобы я мог включить этот идентификатор в каждый журнал и понять последовательность журналов каждого запроса.

Это не сложно написать сам, но мне интересно, есть ли встроенная функция, которую я могу использовать, или способ достижения этого в ASP.NET Core 2.

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

Вы можете использовать System.Diagnostics.Activity класс ( источник ). От Активность Руководство пользователя

Activity.Id служит в качестве иерархического идентификатора запроса в терминах HTTP-протокола корреляции

Используется, например, Microsoft / ApplicationInsights-aspnetcore для мониторинга приложений.

0 голосов
/ 20 сентября 2018

ASP.NET Core также имеет HttpContext.TraceIdentifier, который однозначно идентифицирует текущий запрос.

Он генерируется для каждого входящего запроса Kestrel, поэтому не подходит для сопоставления вызовов одной службы с другой, но подходит для сопоставления журналов для одного запроса вместе или для сопоставления сообщения об ошибке, которое может отображаться в пользователь с соответствующими логами.

0 голосов
/ 10 мая 2018

Похоже, вы ищете идентификатор корреляции . Может быть, Средство корреляции ID поможет?

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