Утилита логирования и уведомлений (постановка)
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 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.
- Прием управляющих событий.