Delphi:在字段中记录应用程序错误

Delphi:在字段中记录应用程序错误,delphi,logging,error-handling,remote-debugging,Delphi,Logging,Error Handling,Remote Debugging,使用Delphi7,我想知道是否有一个免费组件可以在我的应用程序在远程站点运行时收集诊断信息,并帮助我调试错误报告 也许它会记录每个菜单项的选择、控件的点击、文本输入等等?也许它只是在崩溃时转储堆栈。也许它还有别的作用 我不介意添加代码(例如在每个过程的开头和结尾),因为这可能会生成比全自动系统更有用的信息 我不确定这个解决方案是否应该“打电话回家”,或者是否足以生成一个可以通过电子邮件发送给我的文本文件 有什么建议吗 通过崩溃调试,查看MadExcept madExcept旨在帮助您定位软件

使用Delphi7,我想知道是否有一个免费组件可以在我的应用程序在远程站点运行时收集诊断信息,并帮助我调试错误报告

也许它会记录每个菜单项的选择、控件的点击、文本输入等等?也许它只是在崩溃时转储堆栈。也许它还有别的作用

我不介意添加代码(例如在每个过程的开头和结尾),因为这可能会生成比全自动系统更有用的信息

我不确定这个解决方案是否应该“打电话回家”,或者是否足以生成一个可以通过电子邮件发送给我的文本文件


有什么建议吗

通过崩溃调试,查看MadExcept

madExcept旨在帮助您定位软件中的崩溃。当程序中出现崩溃/异常时,madExcept将自动捕获、分析、收集大量有用信息,并为最终用户提供向您发送完整错误报告的可能性

非商业用途免费,商业用途便宜

或者来自绝地代码库的JclDebug

可以在这里找到关于它的博客帖子

编辑:这似乎是一个关于如何使用JCLDebug的非常好的例子

您有没有从中查看开源JclDebug?这是一个例子

想象一下你可以得到一个详细的 错误报告包含完整的 发生错误的位置的调用堆栈 结合有关文件的信息 和行号。这份报告可能是 直接在用户上生成 将通过电子邮件发送给您 或者直接通过互联网,使用 自定义过程-甚至直接 在中创建条目 您正在使用的错误跟踪工具

这一点以及更多是由 绝地计划-更准确地说,是 JCL子项目及其应用 JclDebug框架。当你有 已完成安装 软件包中,一个名为 将添加“Inser JCL调试数据” 到您的“项目”菜单 delphiide

我用尤里卡洛语

它可以完成调用堆栈、内存内容、其他正在运行的应用程序、对机器的良好描述、操作系统、修补程序等。它可以(在用户许可的情况下,如果配置为这样)截屏,请求用户输入(崩溃时你在做什么?)等等。。它可以通过电子邮件发送转储,发送到http,直接发送到诸如Mantis和FogBugz之类的bug跟踪程序,或者只是将其留在系统上。这很好,并且得到了很好的支持

另外,这里还有一个类似问题的链接

最著名的开源日志框架Log4J有一个很好的delphi移植,它是用java编写的:称为Log4Delphi

我下载了它,扩展并成功地用于我的项目

最佳功能:开源、Apache许可证、文档丰富、易于扩展、电源设计:借助appender的概念,您可以构建自定义appender,并使用它使用UDP协议将日志数据从远程客户计算机发送到总部

试试看,让我知道:-)


PS:这个项目似乎已经停止了,但是它是成熟的,我使用它时没有内存过载和cpu开销问题。

log4Delphi项目已经休眠了4年,但我被授予更新休眠的log4Delphi项目的权限,我已经将4年的错误修复和补丁累积到Source forge上提供的最新0.8版本中。我在生产中使用这个库,并发现它非常稳定、可靠和易于使用


类似的问题:您说“不介意在每个过程开始时添加代码”。。。事实上,你应该介意做那种事情,因为这正是那种随着时间的推移导致极难管理代码的事情。这听起来很棒,谢谢(+1)。您的扩展是否只对您有用,或者您可能会发布给每个人?我的扩展是为适应我们的业务数据结构而建模的,但我还添加了一个UDP appender(由indy制造),它具有加密功能,可以通过internet发送敏感的日志数据。如果您对源代码更感兴趣,请告诉我。另一个端口名为log4d,可在Sourceforge上获得,似乎正在积极开发中。谢谢,听起来很棒(尤其是链接)+1+1用于EurekaLog!它帮助我在几分钟内修复了bug,而我却不知道从哪里开始;我看起来不太活跃。你会在2017年推荐它吗?@Mawg我会说,德尔福社区不像以前那么活跃了,但是的,我仍然会推荐它。