在 Serilog 中记录字典,其中值类型是 class
Log a Dictionary in Serilog, where Value type is a class
我有一个 Dictionary<string, object>
,其中的值属于不同的 class 类型。当我尝试记录词典时,内容显示不正确。
_logger.LogInformation("Printing Dictionary: {@myDictionary}", myDictionary);
结果
Printing Dictionary: {"KEY1":{"$type" : "ClassNameOne"}, {"KEY2":{"$type" : "ClassNameTwo"}}
想要的结果是{"KEY1":{"ClassOnesFirstProperty" : "PropertyValue","ClassOnesSecondProperty" : "PropertyValue"}, {"KEY2":{"ClassTwosFirstProperty" : "PropertyValue"}}
或者至少是向我展示实际数据的东西。我怎样才能做到这一点?
一个解决方案:在记录字典之前将其序列化。所以,
_logger.LogInformation("Printing Dictionary: {@myDictionary}", myDictionary);
应该变成
_logger.LogInformation("Printing Dictionary: {@myDictionary}", JsonConvert.SerializeObject(myDictionary));
我有一个 Dictionary<string, object>
,其中的值属于不同的 class 类型。当我尝试记录词典时,内容显示不正确。
_logger.LogInformation("Printing Dictionary: {@myDictionary}", myDictionary);
结果
Printing Dictionary: {"KEY1":{"$type" : "ClassNameOne"}, {"KEY2":{"$type" : "ClassNameTwo"}}
想要的结果是{"KEY1":{"ClassOnesFirstProperty" : "PropertyValue","ClassOnesSecondProperty" : "PropertyValue"}, {"KEY2":{"ClassTwosFirstProperty" : "PropertyValue"}}
或者至少是向我展示实际数据的东西。我怎样才能做到这一点?
一个解决方案:在记录字典之前将其序列化。所以,
_logger.LogInformation("Printing Dictionary: {@myDictionary}", myDictionary);
应该变成
_logger.LogInformation("Printing Dictionary: {@myDictionary}", JsonConvert.SerializeObject(myDictionary));