Переменные уровня приложения NLog - PullRequest
0 голосов
/ 21 февраля 2019

Мне поручено приложение WPF, и я выбрал NLog для нашей регистрации.

Я отмечаю ответы здесь и здесь Я хотел бы сделать что-то подобноено с .net Desktop & с большим контролем.

Я хотел бы установить guid один раз при запуске приложения, и в каждой записи журнала (на любом уровне) этот guid включается автоматически, поэтому я могу искать по этому guid.Создание нового guid при входе пользователя в систему.

Если пойти дальше, было бы неплохо знать, могу ли я программно добавлять любые переменные, которые включаются в каждый создаваемый мной журнал, поэтому яНе нужно добавлять их в каждый Log.AnyLevel, например, вывод:

DateTime | LoginID | SessionGuid | MyMessage  

, чтобы получить этот вывод, который мне нравится делать только:

logger.Trace("MyMessage")

Установлен LoginID & SessionGuidили когда приложение запускается, или я создаю экземпляр ViewModel или Пользователь входит в систему.

Я отмечаю, что в настоящее время я могу сделать это за журнал с помощью

LogEventInfo

Как я могудобавить переменную один раз (из кода) и всегда ли она включена?

1 Ответ

0 голосов
/ 21 февраля 2019

Вы можете установить переменную NLog GDC:

GlobalDiagnosticsContext.Set("AppGuid",Guid.NewGuid().ToString());

И затем ссылаться на это в своих макетах:

${gdc:item=AppGuid}

См. Также https://github.com/NLog/NLog/wiki/Gdc-layout-renderer

...