Структурированное ведение журнала с помощью 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.