Менеджер сбора логов
Обращаем ваше внимание, что данный функционал доступен с релиза 5.1.7.31 Кассир 5 и выше.
В задачи менеджера логов входит:
- Предоставление инструментов для ведения логов всех систем и модулей (внутренних и внешних, как например, логических модулей) ПО Кассир 5.
- Копирование и хранение логов внешних программных продуктов. Таких, например, как драйверы, УТМ ЕГАИС, ЛМ ЧЗ, ТС ПИОТ и т.д.
- Удаление старых файлов логов.
- Выгрузка всех накопленных логов в виде архива.
Как это работает
Подсистемы и модули Кассир 5
- Менеджер сбора логов предоставляет программные инструменты (функции и процедуры) для записи логов, при этом для написания пользовательского кода с возможностью ведения логов не надо продумывать КУДА (расположение файлов логов), КАК (формат) писать и КОГДА надо и надо ли вообще очищать старые файлы с логами.
- При использовании этих программных инструментов логи будут писаться в каталог менеджера сбора логов и впоследствии будут удаляться при необходимости очистки старых логов.
- Если подсистема или модуль логики Кассир 5 не поддерживают работу с менеджером логов, то для них будет использоваться тот же механизм сбора логов, что доступен для работы с внешними программными продуктами. В случае, если модуль логики поддерживается нами, но еще не поддерживает работу с менеджером сбора логов, то директория логов таких модулей будет автоматически сканироваться на наличие новых файлов логов и копировать в случае необходимости.
Внешние программные продукты
- Внешние программные продукты ведут логи собственными средствами на основании своих внутренних настроек, поэтому использование инструментов менеджера сбора логов невозможно.
- Для таких случаем менеджер сбора логов представляет возможность указать путь до директорий, куда внешние программные продукты пишут свои логи. При наступлении определенных событий менеджер логов будет копировать из указанных директорий логи в собственный каталог сбора логов.
Копирование внешних файлов логов
В данный момент менеджер сбора логов сканирует внешние директории логов и копирует новые файлы в свой каталог, а после выполняет удаление старых логов в своей каталоге логов при:
- снятии отчета с гашением
- снятии отчета без гашения
- перед выгрузкой архива логов
Копирование файлов из директорий внешних источников логов выполняется рекурсивно, то есть вместе со всеми вложенными директориями.
Удаление старых файлов логов
Менеджер сбора логов сканирует собственный каталог и если указан период хранения логов, то удаляет из него файлы логов, которые были изменены последний раз раньше указанного периода (текущая дата минус период хранения).
Выгрузка архива с логами
Перед выгрузкой архива с логами помимо копирование внешних логов и удаления старых также выполняется выгрузка информации о текущей конфигурации Кассир 5 (то же самое, что можно увидеть и скопировать в буфер в разделе “О программе”).
Настройка
- Для настройки менеджера сбора логов (для пользователя это называется “Централизованный сбор логов”) в главной форме настроек нажать кнопку “Логи” внизу этой формы.

Вкладка "Параметры" централизованного сбора логов в форме настройки менеджера логов
- Каталог - директория в которую менеджера сбора логов будет писать, копировать и хранить логи. При первом запуске Кассир 5 самостоятельно установит каталог логов менеджера сбора логов по шаблону: <путь до базы>/Logs/.
- Кнопка “По умолчанию” - при нажатии устанавливает каталог логов по умолчанию также по шаблону <путь до базы>/Logs/.
- Период хранения - период хранения файлов логов. Если файл хранится (был последний раз изменен ранее) в директории дольше заданного периода, то он будет удален. Если указать значение 0, то файлы из каталога вообще не будут удаляться.
- Флаг “Задавать вопрос перед копированием … закрытия смены” - если установить этот флаг, то при снятии отчета перед и для копирования будет задан вопрос о необходимости запуска копирования внешних файлов логов.

Вкладка “Источники логов”
- В данной вкладке выводятся активные модули (в том числе и модули логики) и подсистемы Кассир 5, которые для ведения логов используют инструментарий менеджера сбора логов.
- Редактировать этот список невозможно, он выводится в качестве информационного табло, чтобы понимать какие модули НЕ надо настраивать на вкладке “Внешние источники логов”.

Вкладке “Внешние источники логов”
- В данной вкладке настраивается список директорий внешних источников логов, которые менеджер сбора логов потом будет сканировать и копировать.
- Для каждого источника логов можно указать наименование модуля и наименование подсистемы, если внешний программный продукт может вести логи сразу в несколько директорий при наличии разных логируемых подсистем.
- Вместе с наименованием модуля и подсистемы очень желательно указывать также фильтр файлов, так как без такого фильтра будут копироваться ВСЕ файлы из указанной директории. Это может привести к увеличению времени копирования из внешних директорий файлов логов в том случае, если, например, внешний программный продукт пишет логи сразу на рабочий стол (на рабочем столе может лежать очень много файлов).
- Копирование из директорий внешних источников логов выполняется рекурсивно, то есть с и из всех вложенных директорий.
- Перед открытием этой формы параметров список внешних источников логов автоматически заполняется на основании списка загруженных модулей логики и списка активных подсистем Кассир 5, которые еще не используют инструментарий менеджера сбора логов, но находятся на поддержке, либо интеграция с менеджером сбора логов вообще невозможна технически, но мы можем получить информацию о том, куда они пишут логи, например менеджер оплат. Автоматически добавленные источники логов в таблице выделяются зеленым цветом.
- Наименование модуля и подсистемы важны, так как в своем каталоге менеджер сбора логов создает соответствующую структуру папок (<каталог менеджера сбора логов>/<модуль>/[<подсистема>/]) и если в наименовании модуля или подсистемы будут символы, которые нельзя использоваться для наименование папки windows (для linux ограничений в этом плане намного меньше и они включены в ограничения windows), то папку создать нельзя будет. Поэтому добавлена проверка указываемых наименований модуля и подсистемы, чтобы ограничить пользователя.
- Пользователю может указать директорию с теми же идентификаторами (модуль, подсистема), что и автоматически добавленные директории. Ошибок при этом нет, пользователь на месте может лучше знать что и откуда надо копировать. Путанницы при копировании также не будет, так как менеджера сбора логов при создании папки модуля в своем каталоге добавит к наименованию модуля суффикс “(П)” (<каталог менеджера сбора логов>/<модуль> (П)/[<подсистема>/]).
- Дублировать идентификаторы с разными директориями пользователю нельзя, так как менеджеру сбора логов в таком случае будет все равно откуда и куда копировать, поэтому пользователя остановят перед сохранением параметров централизованного сбора логов.

Пожалуйста оцените пользу статьи для вас
Если у вас есть пожелания или вы не согласны с тем, что написано в статье, напишите нам в Телеграм