У меня есть набор служб Windows - всего 7.Эти сервисы отслеживают различные аспекты различных рабочих процессов.
В них я устанавливаю поле с именем scanid:
public static void SetScanid(this ILogger logger, int? scanid)
{
GlobalDiagnosticsContext.Set("scanid", scanid);
}
в файле nlog.config, я использую его для заполнения частижурналы для быстрого поиска / поиска:
<variable name="messageLayout" value="[${longdate}] -- [SID:${gdc:item=scanid}] ... " />
В начале любого данного процесса я устанавливаю SCANID и в конце очищаю его.
Теперь в 7 различных файлах журнала,У меня SID в качестве поля для поиска.
Могу ли я вместо этого: создать цель, которая регистрирует данный файл ТОЛЬКО при заполнении этого поля?
Скажем, что-то вроде
<target xsi:type ="File"
name="sidTarget"
fileName="Logs\Process-${gdc:item=scanid}.log"
when=" ??? scanid is not null or empty ??? "
... />
Или в правилах есть что-то, что могло бы это охватить?