Serilog中的Jobject/Jtoken对象序列化的问题

时间:2021-11-13 00:53:26

今天使用Serilog打印object对象的时候,发现Jtoken对象输出成 [[[]] 这种形式了,本来以为是传入参数的问题,确认了几遍后发现确实是Serilog输出的问题。github上也有人提出了这个问题:

原因比较简单,dynamic对象无法通过反射之类的通用形式获取其结构,由此对于Serilog这种结构化日志来说,无法获得很好的支持。不过她提供了LoggerConfiguration.Destructure函数让用户手动提供这类对象的结构化方法。

对于JToken这类的对象,网上也有人提供了现成的解决方案: destructurama/json-net。有同样需求的人下载使用下吧。

这个项目比较简单,关键部分就一个文件,如果觉得它的输入方法还有待改进,可以自行修改。

相关文章