Коллекция свойств LogContext

Как я могу получить набор свойств текущего LogContext в пользовательском ПО промежуточного слоя ASP.NET Core? Я нажимаю свойство в промежуточном программном обеспечении следующим образом:

      var profile = context.Request.Host.Host;

using (LogContext.PushProperty("TestProp", "MyCustomProp"))
using (LogContext.PushProperty("Profile", profile))
{
  await _next(context);
}

Затем я хочу получить всю коллекцию свойств, как я могу это сделать?

1 ответ

Интерфейс намеренно разработан таким образом, чтобы не отображать такую ​​информацию — информация предназначена исключительно для использованияEnrich.FromLogContextи подлежит изменению. Вы можете прочитать импл .

Таким образом, вам нужно будет управлять этим извне.


Одна вещь, которая поддерживается обычной практикой, - это использовать{Properties}в вашем шаблоне сообщения, чтобы отобразить все свойства, которые вы добавили через:

      .Enrich.FromLogContext() 
.WriteTo.Console("[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {Properties} {NewLine}{Exception})
Другие вопросы по тегам