Здравствуйте,
Пользуемся на проекте 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}" выводилось только, если контекст задан?