2009-07-21 6 views

Antwort

10

, weil die Art und Weise Komponenten Arbeit ist, dass eine Komponente nicht den „variables“ scope außerhalb von sich selbst sehen können, und wenn Sie Ihre logging.cfm<cfinclude>, ist es, diese Funktionen in der Seite des variablen Umfang einschließlich. um für Ihre Komponente die Funktionen zu nennen, könnten Sie dies tun:

<cfinclude template="logging.cfm"> 

<cfset request.logger = variables.logger> 

und dann in Ihrem <cfcomponent>, könnten Sie request.logger(whatever) nennen.

Aber ehrlich, das fühlt sich rückwärts für mich an. Stattdessen, warum nicht ein Logger.cfc, die eine Funktion „log“ genannt enthält, und dann, wenn du etwas anmelden möchten, die Sie gerade tun:

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

Dank, dass klar ist, aber ja der letzte Teil Ihrer Antwort scheint gewesen zu sein, verpasst – blank

+0

Ich habe den fehlenden Teil sichtbar gemacht. +1 auf die Antwort. – Tomalak