Похоже, ваш batchId
является глобальным для процесса, поэтому вы можете проверить Gdc layout renderer
.
Global Diagnosti c Context - словарь структура для хранения значений для каждого экземпляра приложения.
Поддерживаемые платформы: Все (NLog 4.1 позволяет хранить объекты любого типа, а не только String)
Использовать глобальный контекст диагностики, когда вы хотите убедиться, что информация, доступная каждому регистратору в текущем процессе.
В документации объясняется, как ее использовать, но очень кратко: в вашем файле конфигурации вы будете использовать ${gdc:item=batchId}
, где вы хотите поместить batchId
в ваших логах. Затем, где-нибудь в приложении (в функции Main
, я бы поставил), вы должны сделать: GlobalDiagnosticsContext.Set("batchId", batchId);
.
Я не знаю, собственно, пространство имен, в котором живет GlobalDiagnosticsContext
.
Если GlobalDiagnosticsContext
слишком широк, существует также Сопоставленный логический контекст диагностики (MDL C) (заменяет устаревший MD C, поскольку MDL C также поддерживает асинхронный c Задачи)