pensé en otra forma que podría funcionar.
instalación de un OnMissingMethod algo como esto:
<cffunction name="onMissingMethod">
<cfargument name="missingMethodName" type="string">
<cfargument name="missingMethodNameArguments" type="struct">
<cfset var tmpReturn = "">
<cfset var functionToCallName = "Hidden" & Arguments.missingMethodName>
<cfset arguments.missingMethodArguments.calledMethodName = Arguments.missingMethodName>
<cfinvoke method="#functionToCallName#" argumentcollection="#Arguments.missingMethodArguments#" returnvariable="tmpReturn" />
<cfreturn tmpReturn>
</cffunction>
entonces el nombre de cada uno de los métodos regulares con un prefijo ("Oculto" en este ejemplo), y marcarlos como privado. Así que mi ejemplo inicial se convertiría en:
<cffunction name="HiddenisUsernameAvailable" access="private">
<cfset logAccess(request.userid,Arguments.calledMethodName)>
......
</cffunction>
Ahora todas las llamadas serán interceptados por onMissingMethod, que agregará el nombre del método a los argumentos que van pasando al método real.
Las desventajas que veo al respecto son que la introspección ya no funciona correctamente, y debe usar argumentos con nombre para llamar a todas sus funciones. Si no utiliza argumentos con nombre, los argumentos cambiarán aleatoriamente el orden en la estructura missingMethodNameArguments.
buena llamada en el coldspring, pero se podría pensar que no sería tan complicado. – ethyreal