我希望从大型代码库中确定一段时间内实际使用的文件。我需要了解CFM页面和CFC以及任何包含的CFM文件等。
我知道我可以使用登录application.cfm或使用IIS获取此信息的部分,但我仍然会遗漏任何包含文件和使用的任何CFC。
有没有办法让CF记录它执行的每个文件?理想情况下,我希望将任何新编码保持在最低限度或仅在一个地方。
谢谢, Ciarán
答案 0 :(得分:4)
嗯,我想你需要打开调试并创建自定义调试模板。
调试模板位于:[coldfusiondir] / wwwroot / WEB-INF / debug
查看classic.cfm
用于显示要筛选的模板的代码,然后创建一些类似的代码,将每个模板运行记录到合适的数据存储中。
注意:报告执行时间和CFC存在性能问题(在CFMX6 / 7中),因此请确保禁用该设置,并删除任何相关代码。
事实上,如果要在Live环境中运行(不理想),请确保将自定义模板拆分为最少的必要代码才能执行此日志记录。
答案 1 :(得分:-2)
使用调试模板的方法可行,但只有在启用调试后才能使用。如果代码库很大而且不实用,并且您必须收集此信息的唯一地方是实时的,那么请确保这些模板不输出任何内容。
此外,您的CFC调用会减慢很多。要非常小心地看到它如何破坏您的服务器。
就我个人而言,我只需要更新服务器级别结构,只需要文件名。
<cfparam name="server.st_FileLog" default="#structNew()#">
<cfparam name="server.st_FileLog[thisFile]" default="1">
Application.cfc或Application.cfm中的这两行可能就是这样做的。
然后只需要一段代码来转储代码。
<cfoutput><code>#structKeyList(server.st_FileLog,chr(13))#</code></cfoutput>