NLog - target.layout выводить сонтекст только если он установлен
От: Yuri Abele Германия yabele.blogspot.com
Дата: 31.08.18 12:16
Оценка:
Здравствуйте,

Пользуемся на проекте NLog логгером.
С некоторых пор стали использовать контексты (GDC, MDC, MDLC, NDC, NDLC).

Например
var contextID = "например ID сессии";
using (NestedDiagnosticsLogicalContext.Push(contextID))
{
    // ...
    log.Info("сообщение 1");
    // ...
    log.Info("сообщение 2");
    // ...
    log.Info("сообщение 3");
    // ...
}


соответсвенно в лог дополнительно к самим текстам сообщений можно выводить (в синтаксисе NLog layout) что-то вроде:
CONTEXT:${ndlc}
${longdate} ${level} CONTEXT:${ndlc}${newline}всё естальное


Но контекст далеко не всегда задан.
При этом я знаю, что в NLog можно layout с условиями задавать (я про $when).
Но вот тут и затык — я не могу сообразить, как его отформатировать так, чтобы "CONTEXT:${ndlc}" выводилось только, если контекст задан?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.