Ошибка при попытке поставить атрибут объекта в логгер, NLog - PullRequest
1 голос
/ 11 октября 2019

Когда я пытаюсь поместить журнал приложения для просмотра атрибутов объекта с помощью NLog, он выдает ошибку как

_logger.Info("token :{0}, Object:{1}", "token", Object.Select(y => new { y.Id, y.Name, y.Charge})); 

Эта ошибка отображения «System.Linq.Enumerable + WhereSelectListIterator».

Затем я попытался преобразовать это в список следующим образом:

_logger.Info("token :{0}, Object:{1}", "token", Object.Select(y => new { y.Id, y.Name, y.Charge}).ToList()); 

Затем ошибка отображалась как "System.Collections.Generic.List`1 [<> f__AnonymousType1]".

Я не могу войти в этот объект. любая помощь?

1 Ответ

3 голосов
/ 11 октября 2019

Если вы просто хотите stringify объект, вы можете использовать от @ до

_logger.Info("token :{0}, Object:{@1}", "token", Object.Select(y => new { y.Id, y.Name, y.Charge}).ToList()); 

Однако я бы предложил переключиться на структурированное ведение журнала: https://github.com/NLog/NLog/wiki/How-to-use-structured-logging

_logger.Info("token :{token}, Object:{object}", "token", Object.Select(y => new { y.Id, y.Name, y.Charge})); 

Согласно вышеприведенной документации он должен правильно отображать коллекцию анонимных объектов. В противном случае вы можете просто добавить @ для сериализации объекта в представление JSON.

...