如何在ColdFusion应用程序中记录所有用于调试的方法调用

时间:2018-10-22 14:57:55

标签: debugging coldfusion aop

我正在处理大量遗留的ColdFusion应用程序,并且来自Java背景,因此很难调试某些东西。因此,为了进行调试,我需要在该位置放置writeDump()<cfdump>调用,以首先获取应用程序的流程(这很庞大),其次获取一些信息在可变值上。这是一个痛苦的过程,所以我在想是否至少在某种程度上可以“自动化”它。

我知道我可以在每个函数的开头放置一个log / dump调用,但这将是一项艰巨的任务。

我知道在Java中我可以使用面向方面的编程库(例如How to use AOP with AspectJ for logging?),以便为类中的所有方法定义切入点,并在此基础上执行所需的日志记录逻辑(记录方法名称) )。

ColdFusion中是否有类似的东西?我的要求是在不修改现有代码的情况下使用它,使其尽可能广泛,这样我就无需告诉它记录每种方法,并且易于配置,因此我可以添加/删除/更改要添加的组件跟踪和记录。

2 个答案:

答案 0 :(得分:4)

您打开了基本的debugging in your local CF Admin吗?这将在渲染页面的底部输出整个当前堆栈请求。它会向您显示请求的哪一部分运行缓慢,哪些查询是请求的一部分。它还将向您显示哪个行引发了错误,以及上一行代码将其称为错误。

您还可以考虑在生产中使用Fusion Reactor,以帮助重新创建生产中的错误并查找尚未报告的错误。无需更改代码即可实现它,而在过去的一年半中,我一直在使用旧版CF应用程序来管理它,这是值得的。

答案 1 :(得分:0)

您的ColdFusion版本是什么?如果您使用的是最新版本,那么您就快到了。您要寻找的工具是FusionReactor(最终版本)。

您将很高兴知道FR Ultimate在Java上运行,并与运行ColdFusion的底层Java引擎进行通信。所需的特定FR功能是“分析”。通过分析,您可以在运行超过2秒的任何请求中使用方法堆栈。

看看Charlie Arehart's webinar on FusionReactor Ultimate on Youtube。观看整个网络研讨会是有益的。他对配置文件的解释始于视频的大约16分钟。