Как я могу зарегистрировать * все * используемые скрипты ColdFusion и CFC?

Я хочу определить из большой базы кода, какие файлы фактически используются в течение определенного периода времени. Мне нужно знать о страницах CFM и CFC, а также о любых включенных файлах CFM и т. д.

Я знаю, что могу получить некоторый этой информации с помощью регистрации в application.cfm или с помощью IIS, но мне все равно будут не хватать никаких включаемых файлов и любых используемых CFC.

Есть ли способ заставить CF регистрировать каждый исполняемый файл? В идеале я хотел бы свести любое новое кодирование к минимуму или просто в одном месте.

Спасибо, Чиаран

Запуск PHP на IIS без использования программы установки веб-платформы
Запуск PHP на IIS без использования программы установки веб-платформы
Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем...
Поддержка IIS для PHP
Поддержка IIS для PHP
Эта версия PHP требует наличия C++ Redistributable для VS 2019 (как минимум)
1
0
572
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Хммм, думаю, вам нужно включить отладку и создать собственный шаблон отладки.

Шаблоны отладки находятся в: [coldfusiondir] / wwwroot / WEB-INF / debug

Взгляните на код, который classic.cfm использует для отображения шаблонов на экране, а затем создайте аналогичный код, который регистрирует запуск каждого шаблона в подходящем хранилище данных.

Примечание: существует проблема производительности (в CFMX6 / 7) со временем выполнения отчета и CFC, поэтому убедитесь, что у вас отключена эта настройка и удален любой связанный код.

На самом деле, если это будет работать в среде Live (не идеально), убедитесь, что вы сокращаете свой настраиваемый шаблон до минимально необходимого кода для выполнения только этой регистрации.

Это лучшее решение, которое я слышал до сих пор. Однако это требует изрядной работы, и я могу опубликовать здесь сообщение, когда мне удастся ее реализовать.

Ciaran Archer 17.12.2008 17:21

Подход с использованием шаблонов отладки будет работать, но будет работать только в том случае, если у вас включена отладка. Если база кода велика и громоздка, и единственное место, где вы должны собирать эту информацию, - это живое, убедитесь, что эти шаблоны ничего не выводят.

Кроме того, ваши вызовы 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.

Peter Boughton 22.12.2008 06:44

Да, проблема с однократным запросом - большой недостаток в этом. Было бы здорово, если бы вы могли переключить этот тип входа в CF Admin на несколько часов, а затем потом проанализировать свой файл журнала? Может в CF 9 :)

Ciaran Archer 22.12.2008 14:20

Другие вопросы по теме