【发布时间】:2018-10-22 14:57:54
【问题描述】:
我正在开发一堆旧的 ColdFusion 应用程序,并且来自 Java 背景,因此很难调试某些东西。因此,为了进行调试,我在某个地方放置了writeDump() 或<cfdump> 调用,以首先获取应用程序的流程(这是巨大的),其次是获取有关变量值的一些信息。这是一个痛苦的过程,所以我在想是否有办法“自动化”它,至少在某种程度上是这样。
我知道我可以在每个函数的开头放置一个日志/转储调用,但这将是一项艰巨的任务。
我知道在 Java 中我可以使用面向方面的编程库(例如 How to use AOP with AspectJ for logging?),因此我可以为类中的所有方法定义切入点,并在此基础上执行我想要的日志记录逻辑(记录方法名称)。
ColdFusion 中有类似的东西吗?我的要求是在不修改现有代码的情况下使用它,尽可能广泛,这样我就不需要告诉它记录每个方法,并且易于配置,以便我可以添加/删除/更改哪些组件跟踪和记录。
【问题讨论】:
-
您是在“调试”以响应错误还是尝试转储页面上的所有可用内容?
writeDump()需要您尝试转储的对象,并且您不能在要转储的内容周围放置<cfdump>标记。它不是那样工作的。而cfdump或writedump都会严重影响页面的性能。 -
@Shawn 我指的是我在本地调试以调查生产中出现的错误的情况。方法调用的日志记录肯定会在生产中被禁用。我只会转储当前方法的名称。
-
ColdFusion 本身有一个非常强大的错误处理系统。 learncfinaweek.com/week1/Error_Handling 当您说“旧版”时,您的意思是“该站点使用 Application.cfm”、“该站点不使用 cfscript”或其他什么?
-
更具体地说,您使用的是什么版本的 ColdFusion?
-
有关基本调试的更多信息,请参阅 - learncfinaweek.com/week1/Debugging 来自 Java 背景,您可能习惯于使用 Eclipse 进行调试。您也可以使用 ColdFusion 做到这一点。看到这个 - helpx.adobe.com/coldfusion/using-coldfusion-builder/…
标签: debugging coldfusion aop