У меня есть объект с несколькими свойствами, относящимися к событию, которое только что произошло на моем веб-сайте.Serilog with Seq - Добавление свойств без размещения в тексте сообщения
Я хочу зарегистрировать это событие и для каждого его свойства появиться в свойствах Seq - as. Однако хотите опустить большинство свойств из фактического текста сообщения журнала, поэтому я не хочу их в шаблоне сообщения. v
Если я это сделать:
var logInfo= new LogInfo() {Foo = 1, Bar= "Pending"};
logger.Information("{@event}", logInfo);
Единственное свойство, которое зажигает в послед непосредственно против журнала, является @event свойство. Это на самом деле выглядит следующим образом:
Так что я попытался это:
var enricher = new DnnLogInfoEnricher(logInfo);
using (LogContext.PushProperties(enricher))
{
Log.Logger.Information("Event: {logInfo}", logInfo.LogTypeKey, logInfo.Exception);
}
Но моя озабоченность в связи с этим подходом является то, что этот метод будет стрелять огромное количество раз, я Не рекомендуется создавать новый экземпляр объекта-обогатителя каждый раз, так как мне нравится поддерживать как можно более низкое количество объектов. Просто потому, что меня беспокоят последствия GC (возможно, мои опасения необоснованны?) ,
Это правильный/правильный способ достичь того, чего я хочу (например, с помощью обогатителя), или я чего-то не хватает?
Cheers!