2009-07-21 15 views
1

J'ai une fonction de journalisation (impossible d'utiliser cflog) incluse dans application.cfm et mes pages .cfm peuvent y accéder, mais tous les composants que j'utilise me donnent un "Variable LOGGER non défini". Erreur.Pourquoi mon cfc coldfusion ne peut-il pas accéder à un fichier udf inclus dans application.cfm?

application.cfm

<cfinclude template="logging.cfm"> 

logging.cfm

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

Toutes les idées sur ce que je fais mal?

Répondre

10

parce que les composants de façon travail est qu'un composant ne peut pas voir la portée « variables » en dehors d'elle-même, et quand vous <cfinclude> votre logging.cfm, il est notamment ces fonctions dans la portée des variables de la page. pour que votre composant pour appeler ces fonctions, vous pouvez le faire:

<cfinclude template="logging.cfm"> 

<cfset request.logger = variables.logger> 

puis dans votre <cfcomponent>, vous pouvez appeler request.logger(whatever).

Mais honnêtement, cela me fait mal à l'envers. Au lieu de cela, pourquoi pas un Logger.cfc qui contient une fonction nommée « log », et puis quand vous voulez vous connecter quelque chose, vous venez de faire:

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

grâce qui est clair, mais oui la dernière partie de votre réponse semble avoir été manqué – blank

+0

J'ai rendu la partie manquante visible. +1 à la réponse – Tomalak

Questions connexes