Я использую Serilog с Seq и хочу обогатить протоколирование, которое появляется в Seq, моими собственными свойствами.
Если я введу оператор журнала, например ...
Log.Information("ProcessCycle {Site} {Activity}", SiteName, ActivityName);
InSeq I get ...
Обратите внимание, что значения Site и Activity отображаются как расширенные свойства в Seq, но они также отображаются в общем сообщении.
Как мне войти, где я получаю обогащенные свойства, но не могу ли значения отображаться в строке текстового сообщения?Обратите внимание, у меня есть пакет NuGet, который добавляет ThreadId к каждому вызову.Я хочу, чтобы свойства «Сайт» и «Активность» находились в списке обогащенных объектов, но не обязательно печатались в строке сообщения.
Для ответа на этот вопрос может также потребоваться понимание нашего приложения.
Приложение представляет собой службу Windows, которая порождает несколько действий, которые делают разные вещи.Таким образом, служба Windows управляет различными действиями, содержащимися внутри.По расписанию он просто вызывает «Процесс» в каждом действии, чтобы отключиться и выполнить некоторую работу.Каждый раз, когда Process вызывается orchestrater, мне нужно, чтобы вся регистрация в этом Activity автоматически включала значения Site и Activity, как показано выше (наряду со многими другими значениями свойств, но я не хочу, чтобы все это печаталось в строке сообщения).
Таким образом, вместо вышеприведенной записи вместо этого мы увидим ... Обратите внимание, что сообщение теперь читается просто "ProcessCycle".