如何记录*所有* ColdFusion脚本和使用的CFC?

时间:2008-12-15 14:16:50

标签: iis logging coldfusion

我希望从大型代码库中确定一段时间内实际使用的文件。我需要了解CFM页面和CFC以及任何包含的CFM文件等。

我知道我可以使用登录application.cfm或使用IIS获取此信息的部分,但我仍然会遗漏任何包含文件和使用的任何CFC。

有没有办法让CF记录它执行的每个文件?理想情况下,我希望将任何新编码保持在最低限度或仅在一个地方。

谢谢, Ciarán

2 个答案:

答案 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>