Eurekalog:将异常堆栈跟踪保存到日志文件中

5
我正在使用Delphi 7。需要将任何异常的完整信息记录到文件中。通常我使用Eurekalog。这个很棒的产品显示带有所有堆栈跟踪信息和许多其他调试目的的对话框。因为我需要将它们发送到syslog守护程序,所以我需要访问Eureka log提供给我的这些信息(实际上只需要堆栈跟踪)。有没有一种方法可以以编程方式访问Eureka log的信息?我可以使用裸体的Delphi 7或Eurekalog 6.1。

1
你是在请求别人为你编写代码吗?你已经尝试过什么了吗?你真的是在问:“有没有一种以编程方式访问Eureka日志信息的方法?”在SO上,寻求指导是可以的——但是要求别人为你编写代码是不行的。 - James L.
2
EurekaLog 应该有保存异常到文件的选项;请查看文档。从那里开始,只需要将文件加载到字符串列表中(或逐行读取),并提取您想要的部分到任何您想要的格式中即可。 - Ken White
你想记录每一个异常,还是只记录未处理的异常?你在 EurekaLog 的论坛/支持中心询问过了吗?这是他们的产品。先问问他们。 - David Heffernan
改为带问号的短语 - Jako
1
你不需要向任何人请求修改,@Arioch。 你可以自己进行修改。 由于您的声望较低,因此某人将必须批准您的编辑,但所有有资格这样做的人都会在 Stack Overflow 页眉栏中看到通知。 - Rob Kennedy
显示剩余2条评论
2个回答

9

处理OnExceptionNotify事件。在您的事件处理程序中,可以对AExceptionInfo.CallStack属性进行任何想做的操作,例如将其保存到磁盘或发送到其他进程。请注意,EurekaLog默认已将错误报告保存到磁盘,因此如果您只想这样做,就不需要任何特殊代码。

使用RegisterEventExceptionNotify注册事件处理程序,或使用TEurekaLogV7组件。有关处理EurekaLog事件的详细信息和一般信息,请参见EEvents单元的文档

OnExceptionNotify 会在未处理的异常发生时触发。如果您想要收到 任何 异常的通知,包括最终在程序内被处理的异常,则应该使用 OnRaise 事件。


1
有点是这样,@Warren。今天在我发现那些事件之前,我不得不阅读很多手册。在常规指南部分(入门,基本流程,典型场景,常见问题解答,甚至高级主题)中都没有提到它们。我只是通过阅读参考部分才发现它们的存在。 - Rob Kennedy
1
我猜我的评论被删除了,因为有人认为这个缩写意味着什么不雅的东西.. :-) - Warren P

2

2
在尚未使用EurekaLog或mad except的应用程序中,这是正确的方法。 - Warren P
2
为什么从EurekaLog切换到其他工具会有帮助? -1 - David Heffernan
这不会。但是有些人可能会通过谷歌搜索并找到这个问题,而且他们可能还没有使用其他工具。 - Warren P
那么,您肯定也会将madExcept列入其中。还有半打记录器工具。TSynLog不是为了自己的优点而生成堆栈跟踪,而只是为了记录日志。几乎任何记录器框架都是如此。关于JCL - 我要补充说的是,不仅是一些“人”,而且Delphi IDE本身也在使用它 :-) - Arioch 'The
哦!不用担心,沃伦和阿里奥克。David H. 是一位数学家。他对这个问题的回答是完全正确的。他非常精确。 - user1188260

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接