Asp. Net Пользовательское ведение журнала все еще находится в очереди? - PullRequest
0 голосов
/ 08 мая 2020

Я читал о добавлении вашего собственного регистратора в ASP. NET Core 3.

Читая о системе регистрации Microsoft, я прочитал, что там есть очередь, позволяющая вызов журнала, чтобы быстро вернуться. (Он в основном записывает вызов в очередь (и возвращается к вызывающему), затем очередь передает сообщения для сохранения.)

Мой вопрос в том, добавлю ли я пользовательский ILoggerProvider и custom ILogger, эта очередь все еще происходит, когда я вызываю logger.LogDebug()?

Или это то, что мне нужно реализовать сейчас, когда я создаю собственный регистратор?

1 Ответ

0 голосов
/ 12 мая 2020

Мой вопрос в том, что если я добавлю пользовательский ILoggerProvider и пользовательский ILogger, эта очередь все еще возникает, когда я вызываю logger.LogDebug ()?

Или это то, что мне нужно реализовать теперь, когда я создаю собственный журнал?

Если мы хотим реализовать пользовательский журнал и записывать журнал в какое-то хранилище данных, например SQL Db et c, что может вызвать проблемы с производительностью, если мы напрямую записываем каждое сообщение журнала в хранилище данных. Для повышения производительности, как вы упомянули, в некоторых системах ведения журналов сначала они записывают журналы в быстрое хранилище, а затем запускают фоновую задачу для выполнения асинхронной работы по записи сообщений журнала из быстрого хранилища в целевое хранилище данных.

Как пример сценария, упомянутого в разделе «Без асинхронных методов ведения журнала» , это do c:

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

Чтобы создать подобный настраиваемый регистратор путем реализации interface ILogger, мы можем интегрировать и использовать очередь сообщений в качестве быстрого хранилища для первоначальной записи журналов с помощью специального кода logi c в методе Log в зависимости от фактических требований *. 1023 *

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