- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
不幸的是,我不是在我的开发中的 PC 上写这个问题,所以我可能会犯一些错误。请为此感到抱歉...所以 - 我的问题 - 您使用什么方法在您的应用程序中实现错误日志记录?
在 web 中 (http://delphi.about.com) 是一个很好的事件处理程序,但它只是将系统错误复制到文件中,但我想通过捕获内存和堆栈(以及处理器信息,如果我有时间的话)来扩展它的功能。如果我动态调用它而不是在表单上添加它的组件,我应该知道吗?
procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception) ;
var
ErrorLogFileName : string;
ErrorFile : TextFile;
ErrorData : string;
begin
ErrorLogFileName := ChangeFileExt(Application.ExeName,'.error.log') ;
AssignFile(ErrorFile, ErrorLogFileName) ;
//either create an error log file, or append to an existing one
if FileExists(ErrorLogFileName) then
Append(ErrorFile)
else
Rewrite(ErrorFile) ;
try
//add the current date/time and the exception message to the log
ErrorData := Format('%s : %s',[DateTimeToStr(Now),E.Message]) ;
WriteLn(ErrorFile,ErrorData) ;
finally
CloseFile(ErrorFile)
end;
//Show the exception
Application.ShowException(E) ;
end;
... 和 http://delphi.about.com/cs/adptips2001/a/bltip0101_2.htm
正如我们所知,Delphi 还提供有点像 C 的内存管理 - 使用 & 符号和 Pascal 函数,但最有效的日志记录是什么?
先谢谢了!希望本主题对其他优秀的程序员有用。
最佳答案
可能值得查看第三方组件而不是自己编写一些东西。两者 EurekaLog和 madExcept几乎完全按照你的要求去做。两者都提供了很好的输出,并支持连接到错误跟踪系统,如 FogBugz , Mantis和 BugZilla .有了它,您实际上可以整理收到的错误报告、发现常见模式并希望更快地修复错误。
就我个人而言,安装 Jedi JVCL/JCL 有点矫枉过正,因为它只是一个异常跟踪,因为它是一个相当大的安装。我上面提到的两个都是商业产品,但一分钱一分货。
关于delphi - TApplicationEvents 作为动态组件或静态组件用于跟踪在 Delphi 中调用的例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1115443/
不幸的是,我不是在我的开发中的 PC 上写这个问题,所以我可能会犯一些错误。请为此感到抱歉...所以 - 我的问题 - 您使用什么方法在您的应用程序中实现错误日志记录? 在 web 中 (http:/
在 Delphi 10.4 VCL 应用程序中,我需要检测 FORM RESIZING ENDS 的时间。 (例如,在用户通过拖动其大小 handle 调整表单大小后)。 所以我在表单上放置了一个 T
我有一个 Delphi 6 Pro 应用程序,它在最小化应用程序时执行某些操作。我在属于 TApplicationEvents 组件的 OnMinimize() 事件中完成工作。当使用主窗口控制框上的
我正在使用 TApplicationEvents OnShortCut 事件在 Delphi 程序中获取应用程序键盘快捷键。 使用以下代码: procedure TForm1.ApplicationE
在这两个平台上,关闭应用程序时不会触发此事件。如何确定应用程序是否已关闭,而不仅仅是在后台模式下。 在 iOS 8.3 和 Android lollipop 上测试。 “通过关闭”- 意思是在 iOS
我是一名优秀的程序员,十分优秀!