【问题标题】:Eurekalog: save exception stacktrace into a log fileEurekalog:将异常堆栈跟踪保存到日志文件中
【发布时间】:2012-08-13 15:51:26
【问题描述】:

我正在使用 delphi 7。

我需要将发生的任何异常的完整信息记录到文件

我通常使用 Eurekalog。这个出色的产品显示了一个对话框,其中包含所有堆栈跟踪信息以及许多其他用于调试目的的信息。

我需要访问 Eureka 日志给我的这些信息(实际上我只需要堆栈跟踪),因为我需要在 syslog 守护进程中发送它们。 有没有办法以编程方式访问 Eureka 日志中的信息?

我可以使用裸露的 delphi 7 或 Eurekalog 6.1

【问题讨论】:

  • 你是在要求别人为你写一些代码吗?你已经尝试了什么?你真的在问,“有没有办法以编程方式访问 Eureka 日志中的信息?”在 SO 上,要求指点是好的——要求别人为你写代码是不行的。
  • EurekaLog 应该可以选择将异常保存到文件中;检查文档。从那里,只需将文件加载到字符串列表中(或逐行读取)并将您想要的部分提取到您想要的任何内容中。
  • 您希望记录每一个异常,还是只记录未处理的异常?你在 EurekaLog 论坛/支持上问过吗?这是他们的产品。先问他们。
  • 改成带问号的短语
  • 你不需要让其他人来做这些编辑,@Arioch。你可以自己做。您的声誉很低,因此必须有人批准您的编辑,但所有有资格这样做的人都会在 Stack Overflow 标题栏中看到通知。

标签: delphi error-handling delphi-7


【解决方案1】:

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

使用RegisterEventExceptionNotify 注册您的事件处理程序,或使用TEurekaLogV7 组件。有关处理 EurekaLog 事件的详细信息和一般信息,请参阅documentation for the EEvents unit

OnExceptionNotify 出现在未处理的异常中。如果您希望收到任何异常的通知,包括最终在您的程序中得到处理的异常,那么您应该改用OnRaise 事件。

【讨论】:

  • 有点,@Warren。在我发现这些事件甚至存在之前,我今天必须阅读很多手册。我发现在常规指南部分(入门、基本过程、典型场景、常见问题解答,甚至没有高级主题)中没有提到它们。我只是通过阅读参考部分才找到它们的。
  • 我猜我的评论被删除了,因为有人认为这个首字母缩略词暗示了一些粗鲁的东西.. :-)
【解决方案2】:

【讨论】:

  • 在尚未使用 EurekaLog 或 mad 的应用程序上,这是要走的路。
  • 为什么从 EurekaLog 切换到其他工具会有帮助? -1
  • 不会。但有些人可能会在谷歌上找到这个问题,但尚未使用其他工具之一。
  • 好吧,那么你肯定也会加入 madExcept。以及六种记录器工具。 TSynLog 不会因为自己的优点而创建堆栈跟踪,而只是为了记录日志。几乎所有记录器框架都这样做。关于 JCL - 我要补充的是,不仅有一些“人”,而且 Delphi IDE 本身也使用它:-)
  • 哦!不要担心沃伦和阿里奥克。 David H. 是数学家。关于这个问题,他是完全正确的。他非常精确。
猜你喜欢
  • 2021-03-18
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 2015-03-17
  • 2011-01-05
  • 1970-01-01
  • 2021-09-10
  • 2017-08-06
相关资源
最近更新 更多