2009-07-21 25 views
1

我有一個包含在application.cfm中的日誌功能(不能使用cflog),我的.cfm頁面可以訪問它,但是我使用的任何組件都給了我一個「變量LOGGER未定義」。錯誤。爲什麼我的coldfusion cfc無法訪問application.cfm中包含的udf?

application.cfm

<cfinclude template="logging.cfm"> 

logging.cfm

<cffunction name="logger" > 
... 
</cffunction> 

任何想法,我做錯了嗎?

回答

10

因爲組件的工作方式是組件不能在其自身之外看到「variables」作用域,而當您的作業爲logging.cfm時,它將這些功能包括到頁面的變量作用域中。爲了讓您的組件來調用這些函數,你可以這樣做:

<cfinclude template="logging.cfm"> 

<cfset request.logger = variables.logger> 

,然後在你的<cfcomponent>,你可以調用request.logger(whatever)

但說實話,這讓我感覺倒退。相反,爲什麼不包含名爲「日誌」功能,然後當你想記錄的東西,你只是做一個Logger.cfc

<cfinvoke component="my.Logger" method="log" message="#mylogmessage#"> 
+0

感謝是十分明顯的,但對你的回答的最後一部分似乎已經錯過了 – blank 2009-07-22 05:21:54

相關問題