【问题标题】:How to log all method calls for debugging in a ColdFusion application如何记录所有方法调用以在 ColdFusion 应用程序中进行调试
【发布时间】:2018-10-22 14:57:54
【问题描述】:

我正在开发一堆旧的 ColdFusion 应用程序,并且来自 Java 背景,因此很难调试某些东西。因此,为了进行调试,我在某个地方放置了writeDump()<cfdump> 调用,以首先获取应用程序的流程(这是巨大的),其次是获取有关变量值的一些信息。这是一个痛苦的过程,所以我在想是否有办法“自动化”它,至少在某种程度上是这样。

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

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

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

【问题讨论】:

  • 您是在“调试”以响应错误还是尝试转储页面上的所有可用内容? writeDump() 需要您尝试转储的对象,并且您不能在要转储的内容周围放置 <cfdump> 标记。它不是那样工作的。而cfdumpwritedump 都会严重影响页面的性能。
  • @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


【解决方案1】:

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

您也可以考虑在生产环境中使用Fusion Reactor 来帮助重现生产环境中的错误并找出那些甚至还没有被报告的错误。无需更改代码即可实现它,而且我在过去一年半中一直在管理的旧版 CF 应用程序的成本非常值得。

【讨论】:

  • 感谢您的建议。我们还使用 Fusion Reactor,它是生产中的一个很好的工具。最重要的是,我还希望能够调查不会产生错误的错误。因此,在运行请求时,我想查看为其调用的所有方法...
  • 所有这些数据都在 CF 调试输出的堆栈跟踪部分中。它也在 Fusion Reactor 的堆栈跟踪选项卡中。如果代码在.cfm 文件中,您将看到文件名和行号。如果代码在.cfc 中,您将看到文件名、方法名和行号。
【解决方案2】:

您的 ColdFusion 版本是多少?如果您有最新版本,那么您就快到了。您正在寻找的工具是 FusionReactor(终极版)。

您会很高兴知道 FR Ultimate 在 Java 上运行,并与运行 ColdFusion 的底层 Java 引擎进行通信。您想要的特定 FR 功能是“Profiling”。分析为您提供运行超过 2 秒的任何请求中的方法堆栈。

看看Charlie Arehart's webinar on FusionReactor Ultimate on Youtube。观看整个网络研讨会很有启发意义。他在视频大约 16 分钟后开始解释分析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    相关资源
    最近更新 更多