尝试将对象的属性放入记录器NLog时出错

问题描述 投票:0回答:1

[当我尝试放置应用程序日志以使用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]”。

我似乎无法记录该对象。有帮助吗?

c# nlog
1个回答
2
投票

如果只想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})); 

根据上述文档,它应该正确地render匿名对象集合。否则,您只需添加@即可将对象序列化为JSON表示形式。

© www.soinside.com 2019 - 2024. All rights reserved.