将字符串化的 json 作为结构化数据发送到 serilog

Send stringified json to serilog as structured data

提问人:Vadym 提问时间:10/26/2018 最后编辑:Aman BVadym 更新时间:10/26/2018 访问量:725

问:

我有:Serilog 2.7.1 .NET 框架 4.5.x

我有一个具有不同结构的字符串化 JSON。例:

{
  "dto": {
    "id": "8d8cc96fa1b44186b28f2a90364e47d2",
    "userName": "case6",
    "display": true,
    "isFullUpdate": false
  }
}

我想将其保存为结构化数据 - 而不是字符串化 JSON。

有 2 种方法:

具有更好的性能 - 查找格式化程序“字符串化 JSON” - >结构化数据 另一种方式 - 将其转换为 JObject 之前(性能较差) - 之后转换为结构化数据 JsonConvert.DeserializeObject(myStringifiedJson) -> ->结构化数据(现在我有:

[21:34:27 INF][[[]], [[]]])

有一个针对 netCore 2.0 的解决方案,但不适用于 .NET Framework 4.5.x (https://github.com/destructurama/json-net) 如果当前行为是一个错误,请提供重现问题的步骤,如果可能的话,请提供问题的最小演示

Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.Console()
.CreateLogger();
var myStringifiedJson = @" {""dto"":{""id"":""8d8cc96fa1b44186b28f2a90364e47d2"",""userName"":""case6"",""display"":true,""isFullUpdate"":false}}";
var myJObject = JsonConvert.DeserializeObject(myStringifiedJson);
Log.Information("{@jobject}", myStringifiedJson); // just plaint text
Log.Information("{@jobject}", myJObject); // [[[]], [[]]])
Log.CloseAndFlush();
C# .NET JSON Serilog 序列

评论

0赞 Aman B 10/26/2018
json-net 库支持。NETFramework 4.5.2.您使用的是哪个 .net 版本?
0赞 Vadym 10/29/2018
.NETFramework 4.5.1

答: 暂无答案