如何从<CFScript>内部记录信息

16

我正在学习使用 <cfscript>

<cfscript> 中有没有一种方法可以记录一些消息或值?

就像在 <cfscript> 外面我可以使用 <cflog> 一样,有没有任何方法或标签可以用来将消息打印到日志文件中?

谢谢


回响 Terry Ryan 的评论:CF9 有更完整的 cfscript 实现。 - kevink
注意!Open Blue Dragon ColdFusion 实现不提供 cfscript,因此如果您使用它,就会受到 Adobe 的限制。 - O. Jones
@Ollie Jones,不,他不是。他可以使用具有完整脚本CFC支持的Railo。 - Mohamad
1
@OllieJones: 是的,可以。刚在OpenBD 3.0上测试过了。 - Adam Cameron
@CFUser,鉴于不同的CFML引擎给出了不同的答案,如果您标记正确的引擎/版本可能会有所帮助。 - Adam Cameron
3个回答

24

ColdFusion 9 新增了 "writeLog" 函数,可以实现这一功能。链接


知道我在CF9中看到了什么...通常在我寻找时看不到它。谢谢提醒,特里。 - Stephen Moretti

5
在 Lucee/Railo 中,您可以通过删除尖括号和 "cf" 前缀,在脚本中使用 cflog,因此您可以编写:
<cfscript>
  log text="some text" file="logfilename" type="information";
</cfscript>

这相当于。
<cflog text="some text" file="logfilename" type="information">

3
很不幸,在CF9之前的ColdFusion版本中是没有这个功能的。但是,您可以将UDF映射到cflog来实现类似的功能:
<cffunction name="doCFLog">
   <cflog attributeCollection="#arguments#">
</cffunction>

在您的cfscript中调用doCFLog函数,使用与cflog相同的属性。
例如:doCFLog(text='sometext', type='warning', application='yes', file='mylog');
注意:不要将您的方法/udf等命名为现有的函数或标签名称,因此不要将函数命名为"cflog"或"log"。

难道不应该是:<cflog attributeCollection="#arguments#"> 吗? - jrduncans
在 ColdFusion 8 中,如果不使用 #,它对我没有起作用。我不确定何时/为什么需要这种格式,但希望如果其他人遇到了我遇到的问题,这会对他们有所帮助... - jrduncans
是的,“引号”是可选的,但井号是必需的(适用于所有版本的ColdFusion,至少Railo 4.1和OpenBD 3.0)。我已经相应地调整了上面的代码。 - Adam Cameron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接