Утилита логирования и уведомлений (постановка)

Материал из GedeminWiki
Версия от 12:56, 18 сентября 2015; SYSDBA (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

В разное время и для разных целей в платформу были добавлены следующие функции для логирования операций и/или уведомления пользователя о ходе фоновых процессов:

  • Метод глобального объекта IBLogin AddEvent для записи в таблицу GD_JOURNAL.
  • Форма TfrmSQLProcess и процедуры в модуле at_frmSQLProcess.
  • Запись событий в лог операционной системы.
  • Отсылка сообщений на электронную почту о успешной/не успешной загрузке пакетов ПИ.
  • Окно с анимацией в процессе построения длительного отчета.
  • Окно с временем выполнения длительного SQL запроса.
  • Объект gdNotifierThread для вывода сообщений в специальной области главного окна.
  • Окно Время выполнения скрипт-функций в редакторе скрипт-объектов.

Основная проблема указанных выше механизмов -- невозможно организоват вывод на экран, пока заблокирована основная нить приложения. Использование IBLogin.AddEvent приводит к дополнительной нагрузке на базу данных.

Предлагается:

  • Создаем отдельное приложение gedemin_log.exe для хранения/отображения/записи в БД лога, уведомлений, информации о ходе выполнения длительных процессов.
  • Функциональность gedemin_log.exe:
    • Регистрация подключения/отключения gedemin.exe
    • Прием событий от gedemin.exe. Размещение их в буфере в оперативной памяти и запись в файл лога на диске.
    • Отображение/фильтрация/поиск событий на экране.
    • Запись событий в базу данных включая отложенную, пакетную запись).
    • Считывание ранее сохраненного лога и отображение его.
    • Автоматическую очистку лога.
    • Отсылку управляющих событий на gedemin.exe.
    • Приложение может одновременно обслуживать несколько gedemin.exe на этом же компьютере или с подключением по сети.
  • Создаем глобальный объект gdLog -- нить с низким приоритетом, для взаимодействия с gedemin_log.exe.
  • Функциональность gdLog:
    • Запуск и/или установление соединения с gedemin_log.exe.
    • Накопление событий во внутренней очереди.
    • Передачу событий в gedemin_log.exe.
    • Прием управляющих событий.
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты