gpt4 book ai didi

c# - 如何从存储在 CouchDB 中的 Serilog 中反序列化 LogEvents

转载 作者:行者123 更新时间:2023-11-30 17:41:07 36 4
gpt4 key购买 nike

我目前正在使用 Serilog 将日志(日志应用程序)记录到 CouchDB 数据库,并将一些类型分解到数据库中。

我有一个单独的应用程序(报告应用程序)试图从数据库中提取 LogEvents 并将它们反序列化为原始 LogEvents。报告应用程序与日志应用程序一样了解相同的类型,并且数据库中的特定类型已完全分解为它。

Json.Net 的反序列化器在反序列化 MessageTemplate 时出现问题。即使使用自定义转换器,它也有很多问题,我可能做错了(各种反序列化异常,但我无法分辨出真正的模式)。

有没有人能成功做到这一点?我的印象是能够从日志中提取类型是 Serilog 的功能之一,所有数据都在那里,所以我不明白为什么这是不可能的。

这些类型也是完全可序列化的,它们由 Json.net 定期序列化/反序列化。

最佳答案

经过更多研究,我找到了部分解决问题的方法。使用 http://json2csharp.com/ 生成新类- 将 RootObject 重命名为某物(例如,SpecificLogEvent)并使用:

var logEvent = JsonConvert.DeserializeObject<SpecificLogEvent>(doc.Value);

然后在需要的地方将对象转换为真实的对象。我暂时不会将此标记为答案,因为我喜欢简单的来回操作并避免创建冗余类的额外步骤。

关于c# - 如何从存储在 CouchDB 中的 Serilog 中反序列化 LogEvents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33428434/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com