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

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 17: Строка 17:
 
* Функциональность gedemin_log.exe:
 
* Функциональность gedemin_log.exe:
 
** Регистрация подключения/отключения gedemin.exe
 
** Регистрация подключения/отключения gedemin.exe
** Прием событий от gedemin.exe. Размещение их в буфере в оперативной памяти и запись в файл лога на диске.
+
** Прием событий от gedemin.exe. Размещение их в буфере в оперативной памяти и запись в файл лога на диске. Для связи между приложениями используются TCP/IP Sockets.
 
** Отображение/фильтрация/поиск событий на экране.
 
** Отображение/фильтрация/поиск событий на экране.
 
** Запись событий в базу данных (включая отложенную, пакетную запись).
 
** Запись событий в базу данных (включая отложенную, пакетную запись).
Строка 25: Строка 25:
 
** Приложение может одновременно обслуживать несколько gedemin.exe на этом же компьютере или с подключением по сети.
 
** Приложение может одновременно обслуживать несколько gedemin.exe на этом же компьютере или с подключением по сети.
 
** Приложение взаимодействует с [https://msdn.microsoft.com/en-us/library/windows/desktop/ee330740%28v=vs.85%29.aspx Windows Notifications]
 
** Приложение взаимодействует с [https://msdn.microsoft.com/en-us/library/windows/desktop/ee330740%28v=vs.85%29.aspx Windows Notifications]
** Отображение иконки в System Tray.
+
** Отображение иконки в System Tray. Приложение может работать как с выводом окна на экран, так и без него.
 
** Динамическое отображение информации о ходе процессов (когда известен общий и выполненный объем и, когда он не известен).
 
** Динамическое отображение информации о ходе процессов (когда известен общий и выполненный объем и, когда он не известен).
* Создаем глобальный объект gdLog -- нить с низким приоритетом, для взаимодействия с gedemin_log.exe.
+
* Создаем глобальный объект gdLog -- нить с низким приоритетом, наследованная от [[TgdMessagedThread]], для взаимодействия с gedemin_log.exe.
 
* Функциональность gdLog:
 
* Функциональность gdLog:
 
** Запуск и/или установление соединения с gedemin_log.exe.
 
** Запуск и/или установление соединения с gedemin_log.exe.

Версия 14:21, 18 сентября 2015

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

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

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

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

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

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