Записывать REST-запросы в файл с уникальным идентификатором запроса.C#

Место общения программистов C#
Ответить
Anonymous
 Записывать REST-запросы в файл с уникальным идентификатором запроса.

Сообщение Anonymous »

Предположим, у меня есть простой REST-API, написанный на .net 6, который регистрируется в файле журнала на локальном диске. В ходе обработки запроса создается несколько записей журнала. Например, предположим, что у нас есть контроллер, который вызывает службу, которая вызывает репозиторий, хранящий переданные данные в базе данных:

Код: Выделить всё

public class FooController {
[HttpPost]
public Foo CreateFoo(FooDto fooDto) {
_logger.Debug("Some logging in the controller");
var foo = _mapper.Map(fooDto);
_fooService.CreateFoo(foo);
}
}

Код: Выделить всё

public class FooService {
public void CreateFoo(IFoo foo) {
_logger.Debug("Some logging in the service");
_fooRepository.Create(foo);
}
}

Код: Выделить всё

public class FooRepository {
public void CreateFoo(IFoo foo) {
_logger.Debug("Some logging in the repository");
}
}
Если параллельно обрабатывается несколько запросов, чтение файлов журналов будет затруднено. Какой-то уникальный идентификатор для каждого запроса поможет разделить запросы при чтении файла журнала.
Например, что-то вроде этого:

Код: Выделить всё

2023-08-07 08:40:06.3280 DEBUG REQUEST-ID FooController Some logging in the controller
2023-08-07 08:40:06.3281 DEBUG REQUEST-ID FooService    Some logging in the service
2023-08-07 08:40:06.3282 DEBUG REQUEST-ID FooRepository Some logging in the repository
Есть ли встроенный способ (или даже сторонний Nugets) для архивирования этого? Я нашел решения, которые регистрируют идентификатор потока, но я бы предпочел какой-то GUID или случайную строку, поскольку идентификатор потока можно было бы повторно использовать после остановки потока.

Подробнее здесь: https://stackoverflow.com/questions/768 ... request-id
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»