查找谁在调用该方法

2024-02-05

我想以某种方式找出哪个 CFC 正在调用我的方法。

我有一个记录 CFC,它被许多不同的 CFC 调用。在此日志记录 CFC 上,需要存储哪个 CFC 调用日志。

虽然我可以简单地将 CFC 名称作为参数传递给 log.cfc,但我发现这是一项重复性任务,如果我能以某种方式找出“谁”在 log.cfc 上调用该方法,则可能没有必要

有没有任何程序化的方式来实现这一目标?

提前致谢


Update: As 理查德·廷格尔的回答 https://stackoverflow.com/a/27065409/18511指出,从 CF10 开始您可以使用调用StackGet() https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-c-d/CallStackGet.html,这比抛出虚拟异常更好。


原答案:最简单的方法是抛出一个虚拟异常并立即捕获它。但这有一个缺点,就是在调试输出中出现虚拟异常。对我来说,这是一个破坏性的事情,所以我编写了以下代码(基于)。我想创建一个类似于 cfcatch 对象的对象,以便我可以在需要 cfcatch 对象的地方使用它。

注意:您可能需要稍微调整此代码才能使其在 CF8 或更早版本中运行。我不认为{...}CF9 之前支持创建对象的语法。

StackTrace = { 
  Type= 'StackTrace',
  Detail= '',
  Message= 'This is not a real exception. It is only used to generate debugging information.',
  TagContext= ArrayNew(1)
};
j = CreateObject("java","java.lang.Thread").currentThread().getStackTrace();

for (i=1; i LTE ArrayLen(j); i++)
{
  if(REFindNoCase("\.cf[cm]$", j[i].getFileName())) {
    ArrayAppend(StackTrace.TagContext, {
      Line= j[i].getLineNumber(),
      Column= 0,
      Template= j[i].getFileName()
    });
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找谁在调用该方法 的相关文章

  • c# 通过内存地址调用方法

    我正在尝试在 C 中的指定内存地址调用函数 以下是我在 C 中的操作方法 typedef void do int i auto doActor do 0xAAAABEEF doActor 1 如果可能的话 如何在 C 中复制这种行为 对 C
  • const 成员函数的语义是什么?

    我知道该函数不允许更改对象的状态 但我想我在某处读到允许编译器假设如果使用相同的参数调用该函数 它将返回相同的值 因此可以重用缓存值 如果可用 例如 class object int get value int n const object
  • 低于 64K 方法时出现“方法超出编译器指令限制”消息

    我经常在日志中看到类似这样的重复消息 Method exceeds compiler instruction limit 29278 in void com xxxxxxapp xxxxxx MyGLRenderer onDrawFrame
  • 委托和接口如何互换使用?

    我可以使用接口方法代替委托吗 如何 我发现搜索接口方法比使用委托更快 我希望有一个简单的代码片段 理论上 可以通过包含单个方法的接口 例如 Java 没有委托 来完成委托完成的所有工作 然而 它使代码变得更加冗长并且没有带来什么好处 话又说
  • 使用 Coldfusion 11 的 CFdirectory,文件名中存在非 ASCII 字符问题

    我有一个类似的问题 ColdFusion CFDirectory 和法语 https stackoverflow com questions 1715632 coldfusion cfdirectory and the french从而没有
  • 在打字稿中获取类的键

    我有一个包含很多方法的类 我们称之为 myClass 我这样称呼它 myClass key 有没有办法从 key 获取可能的值 我希望有类似 keyof myClass 的东西 但我得到 myClass 引用一个值 但在这里被用作类型 问题
  • 如何在coldfusion中对HTML表单进行编码?

    我是冷聚变新手 我有一个名为 test1 cfm 的页面
  • 如何在java中添加一个名为number Of Digits()的新方法?

    我有一个名为 public class ZeroCounter 的程序 我想向其中添加一个名为 numberOfDigits 的新方法 并在 main 方法中添加一行来测试它 我应该怎样去做呢 下面是一小部分代码 public class
  • Java:如何读取一个 int 的多个扫描仪值

    我一直在试图弄清楚如何根据从获得的输入来计算面积和体积Scanner班级 该练习包括一次接收多对半径和高度 我已经编写了这些方法并对其进行了测试 所以这些方法应该有效 我遇到的问题是当我想使用 扫描仪 的输入并使用它们进行计算时 这是我的代
  • 可选参数与空参数方法以及带重载的构造函数

    简单来说 假设你有两种方法 public static void WriteMessage Console Write Empty Parameter Function public static void WriteMessage str
  • 测试一个数字是否是另一个数字的倍数[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我的教科书
  • Java - 强制执行已实现的方法

    我有三门课 但我有问题 它们被命名为 GameScene StageScene StageOne 我的问题是我想在 StageScene 中实现初始化 但仍然强制 StageOne 实现它 这样每当有人使用 StageOne 对象 stag
  • ColdFusion/PHP 兼容性

    嘿 我有一个关于 ColdFusion 和 PHP 兼容性的问题 我们建立了一个基于 ColdFusion 的社区网站 是否完全可以使用 PHP 将博客和其他社区功能添加到我们的网站 我的意思是把 PHP 和 ColdFusion 结合在一
  • Web 服务需要一个 DataSet 对象,我如何通过 ColdFusion 或原始 XML 提供该对象?

    我需要调用用 NET 编写的 Web 服务 进行调用的应用程序是用 ColdFusion 编写的 Web 服务期望的参数之一是 DataSet 对象 我无法在 ColdFusion 中实例化 NET DataSet 对象 如何向 Web 服
  • PHP 接口有属性吗?

    PHP 中的接口有属性 还是只有方法 您可以在 DocBlock 中为接口声明属性 然后 IDE 将提示接口的这些属性 PhpStorm 会这样做 但这不会强制在实现类中实际实现这些字段 例如 property string passwor
  • CFdump cfcomponent cfscript

    可以在 cfcomponent 中使用 cfdump 吗 可以在 cfscript 中使用 cfdump 吗 我知道 anser 不是 那么如何发出 insde cfcomponent 函数的值 cf脚本 我用的是CF8 可以在 cfcom
  • Java - 在特定日期执行方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要在每年的特定日期执行一个方法 我该如何在java中执行此操作 Thanks Chris 按优先顺序排列 The Quartz htt
  • 应用程序超时时如何重新启动Coldfusion Application Server?

    当应用程序超时时 有没有办法通过Application cfc重新启动CF服务器 根据 Adob e 文档 它们显示如下
  • 我应该如何使用 alias_method_chain 作为构建方法?

    我正在使用 Ruby on Rails 3 2 13 我想正确使用alias method chain build option name声明 因为我收到一个奇怪的错误 那是 在我的控制器文件中我有 class Articles Comme
  • Coldfusion 跨站点身份验证

    好的 在我正在开发的 Coldfusion 网站上 我刚刚安装了一个名为 Galleon 的第三方 开源 CF 论坛 我不久前问过类似的问题 但现在我们已经取得了一些进展 目前的问题是 它不会识别父站点本身存在的任何变量 会话等 论坛本身存

随机推荐

  • std::unique_ptr、删除器和 Win32 API

    在VC2012中 我想使用唯一指针和删除器在构造函数中创建互斥体 这样我就不需要创建析构函数来调用CloseHandle 我本以为这会起作用 struct foo std unique ptr
  • AJAX 请求之前单击按钮的客户端验证

    我正在使用 MVC 4 我希望能够验证表中行集合中的单行 以确保正确输入字段并通过验证 属性已正确应用于模型 例如 Required MaxLength 50 MinLength 5 public string Name get set 现
  • 生成HMAC SHA256签名Python

    尝试为 3Commas 生成 HMAC SHA256 签名 我使用与官方示例 https github com 3commas io 3commas official api docs blob master rest api md exa
  • PHP Lucene - 索引 - 在 Linux 中经过 2.000.000 个系统块后失败

    我一直致力于使用 Zend Framework 最新版本创建索引 界面工作正常 其他一切都正常 我现在遇到的问题是 重新索引 或创建索引 我已经检查了其他所有内容 清理了数据并仔细检查了数据的质量 该进程总是在最有可能的记录 15 000
  • 如何通过网络发送类

    我有以下问题 我想通过线路发送类型 java lang Class 并在另一端 定义 该类 我这样尝试过 ByteArrayOutputStream bos new ByteArrayOutputStream ObjectOutputStr
  • 如何在android中的sdcard中创建文件夹

    我想在我的 SD 卡中创建文件夹 我使用了下面的代码 public class Screen extends Activity Override protected void onCreate Bundle savedInstanceSta
  • 通用 Windows 平台中未找到文件异常

    请帮助我 我在某个异步方法内有以下 C 代码行 并且我使用通用 Windows 平台 Windows 10 SDK 10 0 14393 var file await StorageFile GetFileFromApplicationUr
  • 检测锁定的表(由 LOCK TABLE 锁定)

    有没有办法检测 MySQL 中锁定的表 我的意思是表被锁定LOCK TABLE table WRITE READ命令 Note that readers interested in detecting named locks acquire
  • 如何在没有填充区域的情况下设置 div 背景

    我在 CSS 上有这样的课程 mgmtError width 716px float left background color FF0000 padding 10px text align center 我想为背景着色而不是在填充区域 我
  • 如何在 webpack 中使用快捷路径“@”?

    我用我的 package json 执行了 npm run build 我收到了这条消息 如何在 webpack 中使用 错误于 node modules babel loader lib node modules vue loader l
  • 如何在实际的 Apple Watch(而不是模拟器中)上强制退出单个应用程序?

    开发应用程序时 有时强制退出应用程序很有用 而无需重新启动整个设备 在我的 iPhone 上 我可以通过双击主页按钮并将应用程序滑动到顶部来强制退出活动应用程序 对于实际的 Apple Watch 不是模拟器 强制退出应用程序特别有用 因为
  • Android - 位图缓存占用大量内存

    我对所有内存管理主题都是新手 所以有很多东西我不明白 我正在尝试在我的应用程序中缓存图像 但我遇到了内存消耗问题 所有位图 Chaching 代码几乎都是从这里复制粘贴的 http developer android com trainin
  • 通过管道id杀死linux进程

    我想杀死一个进程并通过以下方式获取它的 id pgrep f python myscript py 我想打电话 kill s SIGINT 对此 但我找不到任何方法来做到这一点 该命令需要在一行中 尝试使用反引号运算符来评估子命令 kill
  • BizTalk Server 有哪些可行的替代方案? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在评估不同的系统集成策略时 我听到了一些关于 BizTalk Server 的鼓励的话 但也听到了一些
  • 如何在不停止站点的情况下更新 ASP.Net 站点 dll

    是否可以在不停止 IIS 的情况下更新预编译站点的站点 dll 目前 如果我尝试复制新文件来覆盖当前文件 则所有用户在复制文件时都会收到运行时错误 有办法避免这种情况吗 即使您不停止 对 web config 文件 BIN 文件夹 App
  • 如何使用选择文件浏览器的意图来选择文件

    如何使用意图提示用户选择 完成操作 来选择应用程序来选择文件 假设设备中有几个应用程序来浏览文件 我想使用扩展名过滤文件 例如 sav props 先感谢您 你可以使用这样的东西 Intent intent new Intent Inten
  • Mongoid 查找器不工作?

    我已经设置了一个 Rails3 mongoid 应用程序 当我打开 Rails 控制台时 所有查找器似乎都不起作用 http d pr FNzC http d pr FNzC User all User find all condition
  • Channel ManagedChannelImpl 未正确关闭

    如果我运行这两个测试 我会收到错误 1st test Rule public GrpcCleanupRule grpcCleanup new GrpcCleanupRule Test public void findAll throws E
  • 没有名为“ASP.NET 4.6.81.0”的事件日志源。该模块需要.NET Framework 2.0

    我刚刚安装了 VS 2015 Community 并在尝试访问 IIS 中托管的 ASP NET 应用程序 使用 ASP NET v4 0 应用程序池 时 收到了该错误消息 我刚刚下载了 NET Framework 4 6 离线安装程序 它
  • 查找谁在调用该方法

    我想以某种方式找出哪个 CFC 正在调用我的方法 我有一个记录 CFC 它被许多不同的 CFC 调用 在此日志记录 CFC 上 需要存储哪个 CFC 调用日志 虽然我可以简单地将 CFC 名称作为参数传递给 log cfc 但我发现这是一项