Перебирать все стоки и обогатители, зарегистрированные в Serilog - PullRequest
0 голосов
/ 16 февраля 2019

Как можно перебрать все приемники (ILogEventSink объекты) или обогатители (ILogEventEnricher объекты) соответственно, зарегистрированные в Serilog?Я использую Serilog.AspNetCore.

Спасибо.

Итак, моя наивная идея такова: в операции Emit я должен вызвать стороннюю службу, для которой требуется установить текущий HttpContext.Кажется, что операция Emit выполняется в фоновом потоке, которому не назначен HttpContext.Поэтому в операции Emit я хочу разрешить службу IHttpContextAccesor и установить ее свойство HttpContext.Затем я могу вызвать стороннюю службу, требующую установки HttpContext, и все будет хорошо.Текущий экземпляр httpContext, который я получу, находится в моем собственном промежуточном программном обеспечении, и именно здесь я хочу вставить экземпляр httpContext в экземпляр Sink (в его поле [ThreadStatic]) для выполнения сценария, описанного выше.

Другим способом является воссоздание всего Serilog (и его Sink) в промежуточном программном обеспечении при каждом запросе http и передача httpContext его конструктору в качестве параметра.Дорого.

1 Ответ

0 голосов
/ 18 февраля 2019

Serilog не поддерживает этот сценарий.

...