小编The*_*Lax的帖子

获取上一个/调用方法的名称

我目前正在尝试缩短我的日志记录命令,因为在其当前形式中,可能很难创建一种方法,允许在现有项目中轻松有效地实现.我当前的标准日志命令如下所示:

logger.Fatal(CurrentFunctionName+' Grid beschriften:');
Run Code Online (Sandbox Code Playgroud)

这是一个示例,其输出如下:

2013 10 18 15.33.17.383 [FATAL] # [01290458] UTestMain.TFormMainTest.TitelGridRows (Line 229, "UPTestMain.pas") # Actual Log Message
Run Code Online (Sandbox Code Playgroud)

所以我考虑将基于jcl的CurrentFunctionName方法(jcldebug.GetLocationInfoStr(Caller(1)))直接放入记录器的单元中.它起作用但由于它的预期功能,它只提供了有关记录仪单元内方法的信息.这就是我认为可能的方式,但我还没有发现正确的方法:

    procedure TLogger.Fatal(const AMsg : String);
begin
   log(TLevelUnit.FATAL,  PreviousFunctionName + AMsg);
end;
Run Code Online (Sandbox Code Playgroud)

因此,我不想获取当前方法的名称,而是获取此logging-command调用所在的前一个方法的名称.我认为有足够的调试信息这应该是可能的,但目前我无法看到如何使这工作.

delphi debugging logging delphi-xe3

3
推荐指数
1
解决办法
1550
查看次数

标签 统计

debugging ×1

delphi ×1

delphi-xe3 ×1

logging ×1