【发布时间】:2013-08-22 15:12:25
【问题描述】:
我想为我当前的项目编写一个带有 XML 输出的 Logger/Bug-Tracker。如果它应该是重复的,我很抱歉,但是这些建议没有用,我也没有找到一个好的谷歌解决方案。
1:我的第一个问题是关于异常安全的。
如果我使用 XmlDocument,则日志将存储在内存中,直到我调用 save。这意味着如果发生异常,我可能会失去一切。
如果我使用 XmlWriter,它不会存储在内存中(afaik),但我必须关闭编写器和所有元素/节点,如果出现异常,这些元素/节点也可能会丢失。我可以关闭并重新打开 writer(指针位于文档末尾)吗?
创建异常安全的 XML 的最佳解决方案是什么? (我只需要提示)
2:我的第二个问题是关于内存使用的。
因为它是一个跟踪工具,所以输出可能非常巨大。因此我不能使用 XmlDocument。在我看来,XmlWriter 将是最好的解决方案。我说得对吗?
3:我的最后一个 [小] 问题是关于时间消耗的。
使用 XML 文件进行跟踪是好主意还是坏主意?它会使我的程序减慢多少?
我希望你能帮助我。
编辑:我为什么要使用 XML? 稍后,我的应用程序将在“未知”环境中运行,因此我可以通过 Internet 将日志发送到服务器,并且我必须验证文件 (XMLSchema)。完成此操作后,我想将其转换为可读性更好(格式更佳)的 HTML 文件。
如您所见,这是一个比 XML 更好的可视化(这仍然需要一些微调,但它很实用)
编辑 2:当前状态 我进行了一些内存使用测量。记录器(目前基于 XmlDocument :( )对于 5.000.000 个条目需要 ~600mb。不是最好的结果,但也不是最差的。
最好的问候亚历克斯
【问题讨论】:
-
添加了内存测量。
标签: c# xml exception-safety