c# - 尝试将对象的属性放入记录器 NLog 时出错
问题描述
当我尝试使用 NLog 放置应用程序日志以查看对象的属性时,它给了我错误
_logger.Info("token :{0}, Object:{1}", "token", Object.Select(y => new { y.Id, y.Name, y.Charge}));
此显示错误“System.Linq.Enumerable+WhereSelectListIterator”。
然后我尝试将其转换为 List 为:
_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]”。
我似乎无法记录这个对象。有什么帮助吗?
解决方案
如果您只想对对象进行字符串化,您可以@
使用
_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 表示即可。
推荐阅读
- vue.js - 如何过滤一些 vuex 数据以响应选择更改
- r - 边缘上的 R partykit::ctree 偏移标签
- java - 如何修复 ApplicationResources_fr.properties 损坏
- excel - 提示用户根据单元格值保存 Excel 文件名(使用 VBA)
- javascript - 同时从多个 Promise 中返回 Cloud Firebase 数据
- css - 在我的网站的移动版本上显示表格时出现问题
- azure - 如何替换 Azure 规模集 VM 操作系统磁盘(从快照还原)
- sql - 使用 Dapper 存储过程防止注入?
- android - 程序类型已存在:com.paytm.pg.AppTest
- python - Python 中的 Keras:LSTM 维度