我在 application.cfm 中包含了一个日志记录功能(不能使用 cflog),我的 .cfm 页面可以访问它,但是我使用的任何组件都会给我一个“变量 LOGGER 未定义”。错误。
应用程序.cfm
<cfinclude template="logging.cfm">
日志记录.cfm
<cffunction name="logger" >
...
</cffunction>
关于我做错了什么的任何想法?
我在 application.cfm 中包含了一个日志记录功能(不能使用 cflog),我的 .cfm 页面可以访问它,但是我使用的任何组件都会给我一个“变量 LOGGER 未定义”。错误。
应用程序.cfm
<cfinclude template="logging.cfm">
日志记录.cfm
<cffunction name="logger" >
...
</cffunction>
关于我做错了什么的任何想法?
因为组件的工作方式是组件无法看到其variables
自身之外的 " " 范围,而当您使用 时<cfinclude>
,logging.cfm
它会将这些功能包含在页面的变量范围中。为了让您的组件调用这些函数,您可以这样做:
<cfinclude template="logging.cfm">
<cfset request.logger = variables.logger>
然后在你的<cfcomponent>
,你可以打电话request.logger(whatever)
。
但老实说,这对我来说是倒退的。相反,为什么不Logger.cfc
包含一个名为“log”的函数,然后当您想要记录某些内容时,您只需执行以下操作:
<cfinvoke component="my.Logger" method="log" message="#mylogmessage#">