在我们的代码库上使用ColdFusion 2016的代码分析器后,它给我们以下错误。
否 _ [B5O] 写入日志函数使用不正确。WRITELOG 函数不能在替换语句中使用。
<cfoutput>#writeLog("DS001", "#This.Name#", "SDC601", ArrayNew(1))#</cfoutput>
此错误是什么意思? 我需要做什么才能解决问题?
我们正在从 ColdFusion 7 迁移到 ColdFusion 2016。
如何/为什么在<cfoutput>
标签中使用<cfscript>
语法?如果您的代码在<cfscript>
标记内,则<cfoutput>
标记将无效。无论如何,调用writelog
或<cflog>
函数时不需要这些标记。这让我相信您共享的代码不是实际代码。
函数调用的值似乎不正确。也不确定它在 ColdFusion 7 中是如何工作的(同样,这可能不是实际代码的示例(。以下是 writelog 函数文档的摘录:
函数语法
WriteLog (text, type, application, file, log)
对于位置表示法,必须以与语法中提供的完全相同的方式遵循序列。如果未提供其中一个参数,请改用空字符串。这不适用于布尔值,即使必须跳过布尔值,也必须为其提供适当的值。
您共享的代码是:
writeLog("DS001", "#This.Name#", "SDC601", ArrayNew(1))
这意味着您使用的是位置表示法,而 ColdFusion 将其解释为:
text = "DS001"
type = "#This.Name#"
application = "SDC601"
file = ArrayNew(1)
log =
使用该语法时,需要修改代码以正确的顺序传递值。而且我不确定您为什么要尝试将空数组传递到函数中。所有属性都不接受数组。