我开始在我的Delphi应用程序中使用SmartInspect,因为我的用户遇到了我无法在我的机器上重现的错误/问题。当我对问题有一个总体概念时,我将在几个特定的地方监控应用程序,以确认哪些是有效的或哪些无效。
当虫子没有明显原因时,我感到迷茫。我不知道从哪里开始登录以缩小问题范围。是否有使用记录器的常用技术或最佳实践?
SmartInspect似乎非常强大,但我不知道要记录什么或如何组织我的日志,因此数据对于捕获错误是有意义和有用的。
注意:我正在使用SmartInspect,但我认为答案应该适用于任何日志包。
答案 0 :(得分:10)
以下是我尝试在my own OpenSource logging unit中实现的一些指南,但它非常通用,正如您所说,它应该适用于任何日志包:
try...except
块的处理异常 - 并添加一个不值得记录的异常类列表(例如EConvertError
) - 例如我们的单元能够通过全局异常“hook”记录所有异常(在代码中添加try..except
),并处理要忽略的异常类列表; 答案 1 :(得分:2)
对于UI驱动的应用程序,这里是我首先考虑的主要内容:
动作执行时ActionManager或ActionList的事件(给我点击这里的用户然后点击此处列表)。
未处理的使用JCL调试回溯的异常在我的主日志中正确,而如果我使用的是MadExcept或EurekaLog,则异常会有自己的日志。
后台线程启动,停止和重要历史事件
警告,错误,API函数失败,文件访问失败,处理(捕获)异常。
答案 2 :(得分:-1)
当前内存使用量对于长时间运行的进程非常有用,可以查看是否存在内存泄漏(可能会在某天导致内存不足错误)。