Pergunta

Eu tenho uma função de registro (não pode usar cflog) incluído no Application.cfm e minhas páginas .cfm pode acessar esta, mas quaisquer componentes que eu uso me dar um "madeireiro Variável é indefinido." erro.

Application.cfm

<cfinclude template="logging.cfm">

logging.cfm

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

Todas as ideias sobre o que estou fazendo de errado?

Foi útil?

Solução

porque o Equipamento e componentes de trabalho é que um componente não pode ver o "variables" fora do escopo de si mesmo, e quando você <cfinclude> seu logging.cfm, está incluindo essas funções em escopo de variáveis ??da página. para que seu componente para chamar essas funções, você pode fazer isso:

<cfinclude template="logging.cfm">

<cfset request.logger = variables.logger>

e, em seguida, em sua <cfcomponent>, você poderia chamar request.logger(whatever).

Mas, honestamente, isso se sente para trás para mim. Em vez disso, por que não um Logger.cfc que contém uma função chamada "log", e então quando você quiser registrar algo, você apenas fazer:

<cfinvoke component="my.Logger" method="log" message="#mylogmessage#">
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top