Как записать все вызовы методов для отладки в приложении ColdFusion - PullRequest
0 голосов
/ 22 октября 2018

Я работаю над несколькими унаследованными приложениями ColdFusion, и, исходя из фона Java, действительно сложно что-то отладить.Таким образом, я нахожусь в точке, где для отладки я размещаю writeDump() или <cfdump> вызовы по всему месту, чтобы сначала получить поток приложения (это что-то огромное), а во-вторых, чтобы получить некоторую информацию о значениях переменных.Это болезненный процесс, поэтому я подумал, есть ли способ «автоматизировать» его, по крайней мере, до некоторой степени.

Я знаю, что мог бы сделать вызов log / dump в начале каждой функции, но это было бы огромной задачей.

Я знаю, что в Java я мог бы использовать библиотеку Aspect Oriented Programming (например, Как использовать AOP с AspectJ для ведения журнала? ), чтобы я мог определить pointcut для всех методов в классе, и на основе этого сделать желаемую логику ведения журнала (записать имя метода).

Есть ли что-то подобное в ColdFusion?Мои требования заключаются в том, чтобы использовать его без изменения существующего кода, чтобы он был как можно более широким, чтобы мне не нужно было указывать его для регистрации каждого метода, и чтобы его было легко настраивать, чтобы я мог добавлять / удалять / изменять какие компоненты натрек и журнал.

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Какая у вас версия ColdFusion?если у вас последняя версия, то вы почти у цели.Инструмент, который вы ищете, это FusionReactor (Ultimate версия).

Вам будет приятно узнать, что FR Ultimate работает на Java и взаимодействует с базовым механизмом Java, на котором работает ColdFusion.Конкретная функциональность FR, которую вы хотите, это «Профилирование».Профилирование дает вам стек методов в любом запросе, который выполняется более 2 секунд.

Посмотрите вебинар Чарли Арехарта по FusionReactor Ultimate на Youtube .Поучительно смотреть весь вебинар.Его объяснение о профилировании начинается примерно через 16 минут после начала видео.

0 голосов
/ 22 октября 2018

Включили ли вы базовую отладку в локальном администраторе CF ?Это выведет весь текущий запрос стека внизу вашей визуализированной страницы.Он покажет вам, какая часть запроса выполняется медленно и какие запросы являются частью запроса.Он также покажет вам, какая строка вызвала ошибку и какая предыдущая строка кода назвала ее.

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

...