gpt4 book ai didi

delphi - TApplicationEvents 作为动态组件或静态组件用于跟踪在 Delphi 中调用的例程

转载 作者:行者123 更新时间:2023-12-03 18:12:54 25 4
gpt4 key购买 nike

不幸的是,我不是在我的开发中的 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 函数,但最有效的日志记录是什么?

先谢谢了!希望本主题对其他优秀的程序员有用。

最佳答案

可能值得查看第三方组件而不是自己编写一些东西。两者 EurekaLogmadExcept几乎完全按照你的要求去做。两者都提供了很好的输出,并支持连接到错误跟踪系统,如 FogBugz , MantisBugZilla .有了它,您实际上可以整理收到的错误报告、发现常见模式并希望更快地修复错误。

就我个人而言,安装 Jedi JVCL/JCL 有点矫枉过正,因为它只是一个异常跟踪,因为它是一个相当大的安装。我上面提到的两个都是商业产品,但一分钱一分货。

关于delphi - TApplicationEvents 作为动态组件或静态组件用于跟踪在 Delphi 中调用的例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1115443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com