2016-06-15 3 views
2

Использование NLog Есть ли способ определить глобальные свойства LogEventInfo для журналов? Использование конструкцииNLog глобальные свойства

var logEventInfo = new LogEventInfo(LogLevel.Trace, Log.Name, "Hello world"); 
logEventInfo.Properties["messageName"] = "MessageName2"; 

не подходит, потому что в большом проекте везде, используя Info(...) и подобные методы. Но нам нужно добавить некоторые параметры, чтобы смотреть их при регистрации Gelf без переписывания кода.

ответ

2

Вы ищете глобальный диагностический контекст/сопоставленный диагностический контекст?

Набор в коде:

GlobalDiagnosticsContext.Set("prop1", "I'm scoped for all threads"); 
MappedDiagnosticsContext.Set("prop2", "I'm scoped per thread and child thread"); 

Использование в конфигурации:

${gdc:item=prop1} 
${mdc:item=prop2} 

Смотрите также https://github.com/nlog/nlog/wiki/gdc-Layout-Renderer & https://github.com/nlog/nlog/wiki/mdc-Layout-Renderer

Смежные вопросы