powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Еще один самописный инструмент для Trace
1 сообщений из 1, страница 1 из 1
Еще один самописный инструмент для Trace
    #39950973
slackwarwick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может, кому-то будет полезно, или кто-то захочет потестировать, что-то дописать/поправить.
https://github.com/slackwarwick/fdbtracer
Программа на Python, которая парсит вывод Trace API, и записывает результат в базу данных. В качестве базы данных для результатов (dump) используется Embedded Firebird.
Программа делалась как вспомогательная для основной работы по рефакторингу "легаси" энтерпрайз-системы. Если честно, я не изучил исходники Firebird на тему того, как там формируется вывод Trace, а делал свой парсер, глядя на внешний вид вывода. Однако, парсер работал и использовался не только мной. Со временем изучу этот вопрос подробнее.

В схеме базы данных для dump есть поля, которые должны были работать вкупе с изменениями в исходном коде легаси-системы. Есть другой скрипт, который ищет в исходном коде Delphi строки запросов, и вставляет в них комментарий с названием модуля и номером строки. Вот их-то данный парсер и должен потом вставлять в базу. Но все работает и без них, они не обязательны. Могу потом выложить и второй скрипт, если нужно.

Тестировалось на Windows 7, с путем к клиентской/embedded-серверной библиотеке Firebird, прописанным в PATH.

Особенности:
  • Написано на Python3 (3.6, не проверялось на более ранних версиях), используется пакет fdb.
  • CLI
  • используется многопроцессность. Три процесса в режиме непосредственного чтения из базы, два процесса в режиме разбора log-файла.
  • поддерживаются версии Firebird 2.5+ и 3.0+. Собственно, отличаются они только форматом конфигурационного файла для trace, а также кодировкой текста вывода trace (в версии 3.0+ весь вывод в UTF8).
  • работа как в режиме подключения к серверу (User Trace), так и в режиме разбора готового log-файла (System Trace).
  • Простота доработки при необходимости. Скрипт, создающий базу для dump, лежит в отдельном файле. Имена полей таблицы из этого файла автоматически попадают в Python-структуру и код записи в базу. Единственное место, которое правится вручную при изменении схемы базы для dump - метод parse класса парсера.
  • гибкость настройки. Свой файл настройки, файлы настройки trace, плюс несколько аргументов командной строки.
Планирую дорабатывать в свободное время, но пока его не так много.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Еще один самописный инструмент для Trace
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]