Структурированное ведение журнала с помощью Common.Logging и NLog

У меня есть последняя версия Common.Logging (3.4.1) и NLog (4.5.11) в моем проекте. Следовали инструкциям, чтобы связать Common.Logging с NLog в app.config, и теперь регистрация работает.

Теперь я хочу иметь структурированное ведение журнала:

private static readonly ILog _logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

var message = new IDontKnowWhat("A structured message for ClientId {ClientId}", ClientId.ToString());
_logger.Info(message);

Выше псевдокод, я не знаю, как построить объект сообщения. И, похоже, _logger.InfoFormat работает со String.Format, а не со структурированным ведением журнала.

Обеспечивает ли Common.Logging структурированное ведение журнала, кроме использования ThreadVariablesContext / GlobalVariablesContext / NestedThreadVariablesContext?

2 ответа

Решение

К счастью для меня, команда разработчиков Common.Logging в настоящее время исправляет это: Common.Logging.NLog45 с поддержкой структурированной регистрации #176

Оформить заказ на Serilog для структурированной регистрации. Если ваши требования использовать NLog, у serilog также есть приемник NLog.

Другие вопросы по тегам