【发布时间】:2017-01-03 17:30:29
【问题描述】:
我想将任何 json 记录到 serilog 属性中。我已经阅读了很多关于 serilog 和 json 的内容,但它是一个结构化的 json 日志记录,带有一个消息模板。因此,我不想记录这个Log.Info("{@text}",text);,而是这样做:
var json = "{ \"text\": \"hello\" }"; //a json string or a Json object
Log.Info(json);
主要区别在于第一种方法,您有一个消息模板,并且始终有一个“文本”属性。我想要具有不同结构的 json,例如,如果我有:
var json = "{ \"text\": \"hello\", \"text2\": \"hello2\" }"; //a json string or a Json object
Log.Info(json);
我想获取2个属性,即每个json属性1个属性,无需定义消息模板。这可能吗?我必须实现自己的 JsonFormatter 吗?
【问题讨论】:
-
需要注意的是,definition 的 JSON 是一种基于字符串的交换格式。没有 JSON 作为字符串与对象的概念......
-
感谢您的回答。我有一个日志存储库,我想按属性搜索,所以使用消息模板我会提前定义我的所有属性。这就是我问这个的主要原因。
-
您有 JSON 作为 JSON.NET
JObject吗?如果是这样,github.com/destructurama/json-net 应该是你所追求的。