В некоторых случаях я хотел бы добавить контекстуальную информацию к сообщению (например, в настоящее время аутентифицированный пользователь), без необходимости включать его в шаблон сообщения.Как добавить именованное свойство, которое не является частью шаблона сообщения?
Я хотел бы сделать это:
logger.Information("Doing stuff {Foo} with the thing {Bar}. {User}", foo, bar, user)
но без {User}
в шаблоне.
Я уже знаю о LogContext
, но это кажется излишним при добавлении контекстной информации только к одному событию.
Я также знаю, что я могу использовать низкоуровневый API logger.Write(LogEvent evnt)
, чтобы фактически контролировать, какие свойства включены, но это похоже на слишком много кода для того, что я пытаюсь выполнить.
Я уверен, что есть короткий и элегантный способ, что это супер очевидно, но я не нашел :)
UPDATE:
я узнал только потом, что этот вопрос более или менее аналогичен: Add custom properties to Serilog