And*_*rew 3 json expandoobject serilog
如果我有这样的 ExpandoObject:
dynamic d = new ExpandoObject();
d.x = "a";
d.y = "b";
Run Code Online (Sandbox Code Playgroud)
并使用 JsonFormatter 将 Serilog 记录到 RollingFile,如下所示:
_logger.Debug("{@d}", d);
Run Code Online (Sandbox Code Playgroud)
它将被序列化为 json,如下所示:
[{"_typeTag":"KeyValuePair`2","Key":"x","Value":"a"},{"_typeTag":"KeyValuePair`2","Key":"y","Value":"b"}]
Run Code Online (Sandbox Code Playgroud)
如果我使用 Newtonsoft.Json 序列化相同的 ExpandoObject,如下所示:
JsonConvert.SerializeObject(d)
Run Code Online (Sandbox Code Playgroud)
我会得到这个:
{"x":"a","y":"b"}
Run Code Online (Sandbox Code Playgroud)
如何使 Serilog 生成与 Newtonsoft.Json 相同的 json?
添加:
.Destructure.ByTransforming<ExpandoObject>(e => new Dictionary<string,object>(e))
Run Code Online (Sandbox Code Playgroud)
你LoggerConfiguration应该这样做。
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |