Я хочу определить из большой базы кода, какие файлы фактически используются в течение определенного периода времени. Мне нужно знать о страницах CFM и CFC, а также о любых включенных файлах CFM и т. д.
Я знаю, что могу получить некоторый этой информации с помощью регистрации в application.cfm или с помощью IIS, но мне все равно будут не хватать никаких включаемых файлов и любых используемых CFC.
Есть ли способ заставить CF регистрировать каждый исполняемый файл? В идеале я хотел бы свести любое новое кодирование к минимуму или просто в одном месте.
Спасибо, Чиаран


Хммм, думаю, вам нужно включить отладку и создать собственный шаблон отладки.
Шаблоны отладки находятся в: [coldfusiondir] / wwwroot / WEB-INF / debug
Взгляните на код, который classic.cfm использует для отображения шаблонов на экране, а затем создайте аналогичный код, который регистрирует запуск каждого шаблона в подходящем хранилище данных.
Примечание: существует проблема производительности (в CFMX6 / 7) со временем выполнения отчета и CFC, поэтому убедитесь, что у вас отключена эта настройка и удален любой связанный код.
На самом деле, если это будет работать в среде Live (не идеально), убедитесь, что вы сокращаете свой настраиваемый шаблон до минимально необходимого кода для выполнения только этой регистрации.
Подход с использованием шаблонов отладки будет работать, но будет работать только в том случае, если у вас включена отладка. Если база кода велика и громоздка, и единственное место, где вы должны собирать эту информацию, - это живое, убедитесь, что эти шаблоны ничего не выводят.
Кроме того, ваши вызовы CFC будут немного замедляться. Будьте очень осторожны, чтобы увидеть, как это разрушает ваши серверы.
Лично я бы просто обновил структуру уровня сервера, используя только имя файла.
<cfparam name = "server.st_FileLog" default = "#structNew()#">
<cfparam name = "server.st_FileLog[thisFile]" default = "1">
Эти две строки в Application.cfc или Application.cfm могут просто сделать это.
Тогда просто имейте отдельный фрагмент кода, который выгружает код.
<cfoutput><code>#structKeyList(server.st_FileLog,chr(13))#</code></cfoutput>
Application.cfm / c будет запускаться один раз на запрос, т.е. он не запускается для файлов, доступных через cfinclude / cfobject.
Да, проблема с однократным запросом - большой недостаток в этом. Было бы здорово, если бы вы могли переключить этот тип входа в CF Admin на несколько часов, а затем потом проанализировать свой файл журнала? Может в CF 9 :)
Это лучшее решение, которое я слышал до сих пор. Однако это требует изрядной работы, и я могу опубликовать здесь сообщение, когда мне удастся ее реализовать.