您如何登录桌面应用程序以提高稳定性?

Sha*_*ews 13 delphi logging desktop-application

我已经开始在我的Delphi应用程序中使用SmartInspect,因为我的用户遇到了我无法在我的机器上重现的错误/问题.当我对问题有一个总体概念时,我将在几个特定的​​地方监控应用程序,以确认哪些是有效的或哪些无效.

当bug没有明显的原因时,我感到迷茫.我不知道从哪里开始登录以缩小问题范围.是否有使用记录器的常用技术或最佳实践?

SmartInspect似乎非常强大,但我不知道要记录什么或如何组织我的日志,因此数据对于捕获错误是有意义和有用的.

注意:我正在使用SmartInspect,但我认为答案应该适用于任何日志包.

Arn*_*hez 10

以下是我尝试在自己的OpenSource日志记录单元中实现的一些指导原则,但它非常通用,正如您所述,它应该适用于任何日志记录包:

  • 制作几个级别(我们使用集合)的日志记录,以调整所需的日志记录信息;
  • 记录所有异常,甚至是带有try...except块的处理异常- 并添加一个不值得记录的异常类列表(例如EConvertError) - 例如,我们的单元能够通过全局异常"hook"记录所有异常(不在try..except代码中添加),并处理要忽略的异常类列表;
  • 记录所有"致命"错误,如数据库连接问题或错误的SQL语法 - 应该通过"记录所有异常"前一项来完成;
  • 对于此类异常,请记录堆栈跟踪以了解调用上下文;
  • 能够记录所有SQL语句或数据库访问;
  • 添加通用用户界面日志记录,以了解用户触发的软件的哪些主要功能(例如,对于每个工具栏按钮或菜单项):用户说"我在屏幕/报告上有这个,这很常见但是我没有什么都不做......当你看到日志时,你会发现"任何事情"都已完成.;)
  • 监控应用程序的主要方法和相关参数;
  • 日志记录是一项不断发展的功能:使用上面的一般规则,然后根据您的调试需求调整您的实验日志.