API Set10 ◾️ Логирование работы плагинов

Публичное пространство

API Set10 ◾️ Логирование работы плагинов

https://crystals.atlassian.net/browse/SR-8438

https://crystals.atlassian.net/browse/CR-14513

10.4.21.0

Принцип логирования

Логер пишет все логи плагина c максимальным уровнем логирования. Конфигурация логера по умолчанию не допускает разрастания лога более 1000 Кb. В случае превышения этого лимита, файл начинается заново, а предыдущий копируется с другим именем. Всего может быть до четырех таких файлов. 

В версии SetRetail10 10.4.21.0 логирование расширено: теперь в логах фиксируется передача управления с кассы в плагин и наоборот (с указанием вызванного метода). Такой вариант хорошо работает для плагинов по типу плагина валидации акцизных марок (API Set10 ◾ Плагин валидации акцизных марок), которые не могут показывать формы (uiForms) и работают синхронно. Но, например, плагины тех. процесса (API Set10 ◾ Плагин тех. процесса) работают совсем по-другому: возврат управления кассе осуществляется через асинхронный callback.

Расширенное логирование

Логирование всегда работает по умолчанию и не требует включения или дополнительных настроек со стороны пользователя. Единственная доступная настройка - включения логирования передачи управления процессами на кассе плагину и обратно.

Включение функциональности описано ниже в главе API Set10 ◾️ Логирование работы плагинов.

Добавлено расширенное логирование:

  • POS - SetRetail10_Cash:

    • PaymentCallback - ExtPaymentContainer.java - добавлено логирование для paymentCompleted, paymentNotCompleted;

    • TransactionalRefundCallback - ExtPaymentContainer.java - добавлено логирование для refundCompleted;

    • CardSearchCallback, CardIssueCallback, CardSearchFinishedCallback - уже было в SetApiCardPluginSearchRoutine.java;

    • AddForSaleCallback, AddForRefundCallback - уже было в PluginDialogsRoutine.java;

    • FunctionCallback - SetApiFunctionController.java - добавлено логирование для processComplete.

  • Touch2 - SetRetail10_Cash_Touch2:

    • PaymentCallback - уже было в ExternalPaymentPlugin.java;

    • TransactionalRefundCallback - ExternalPaymentPlugin.java - добавлено логирование для refundCompleted;

    • AddForSaleCallback, AddForRefundCallback - SetApiGoodsPlugin.java - добавлено логирование для notCompleted методов;

    • RemoveFromSaleCallback - уже было в SetApiGoodsPlugin.java;

    • FunctionCallback - SetApiFunctionPlugin.java - добавлено логирование для processComplete.

  • SCOv2 - SetRetail10_SCO:

    • PaymentCallback - ExtPaymentContainerSCO.java - добавлено логирование для paymentCompleted, paymentNotCompleted.

  • SCOv3 - SetRetail10_SCO/SCOv3:

    • FunctionCallback - WebViewAdapter.java - добавлено логирование для processComplete.

  • Добавлено логирование для форм (uiForms);

  • Добавлено логирование асинхронных методов onClose - события закрытия форм в тех процессе (касса не ждет их закрытия).

Пример логирования передачи управления

04.08 11:33:04.531 INFO [SetApiPluginReportLogger] Start techProcess intercept to plugin test.techprocess.plugin. | main 04.08 11:33:04.531 INFO [SetApiPluginReportLogger] leaving test.techprocess.plugin to plugin techProcess intercept | main 04.08 11:33:04.531 INFO [SetApiPluginReportLogger] Start techProcess intercept to plugin ru.crystals.setapi.stoloto.techprocess.plugin. | main 04.08 11:33:04.532 INFO [SetApiPluginReportLogger] leaving ru.crystals.setapi.stoloto.techprocess.plugin to plugin techProcess intercept | main

Включение логирования передачи управления

  1. На кассе перейдите в папку /home/tc/storage/crystal-cash/modules/loader → откройте для редактирования файл log4j.xml.

image-20251121-132234.png
  1. Для параметра Logger name="ru.crystals.api.logger” установите значение level="TRACE” → сохраните изменения в файле.

image-20251121-140348.png
  1. Перезагрузите кассу.

Лог-файл

На кассе лог-файл с отслеживанием действий плагина располагается в папке /storage/crystal-cash/logs/plugins.log.

Сервер

На сервере никакого логирования действий плагина не предусмотрено!

Пример содержания лог-файла: