Все события, происходящие при работе кассового ПО, записываются программой в файлы журналов или лог-файлы, которые впоследствии можно использовать для анализа сбоев, получения статистики, расследования инцидентов.
Лог – это текстовый файл, в котором каждому событию соответствует одна строка со временем и некоторыми дополнительными сведениями. Ведение лог-файлов позволяет восстановить картину неполадки либо последовательность действий, которая к ней привела. Для удобства пользователей лог-файлы размещаются в одной директории.
/linuxcash/logs/current
.Помимо лог-файлов сохраняются образы всех чеков, которые были закрыты в течении смены, а также журналы регистрации в ККМ сумм для данных документов.
- Файлы с образами чеков сохраняются в директорию
/linuxcash/logs/current/documents
и именуются по правилу<номер_смены>-<номер_чека>.img
, здесь номер_смены - номер текущей смены, номер_чека - номер завершенного чека. - Журналы регистрации сохраняются в директорию
/linuxcash/logs/current/trs
и именуются как<номер_чека>.<метка_времени>
, здесь - номер_чека - номер завершенного чека, метка_времени - текущее время на момент начала регистрации в ККМ в форматеunixtime
.
Директория | Содержимое |
---|---|
documents | Образы закрытых чеков |
trs | Журнал регистрации в ККМ текущего документа (файл присутствует, если произошло аварийное завершение работы программы во время печати чека) |
trs/commited | Журналы успешно зарегистрированных документов в ККМ |
trs/canceled | Журналы документов, которые не были зарегистрированы в ККМ |
trs/critical | Журналы регистрации в ККМ, содержащие критические ошибки, возникшие при регистрации |
Для упрощения разбора информации "задним" числом при закрытии смены выполняется ротация директорий с лог-файлами. Таким образом, для каждой смены в каталоге /linuxcash/logs/cashlogs
создается директория, название которой соответствует номеру смены.
Уровень детализации записей в лог-файлах
Правила ведения логов, события, которые подлежат записи, их подробность и полнота задаются в файле /linuxcash/cash/conf/Artix/artix.conf
. Используемая подсистема ведения логов позволяет гибко настраивать виды журналов, объединять данные в один файл, распределять данные по нескольким файлам или выводить информацию в консоль. После установки кассового ПО логирование всех модулей осуществляется по умолчанию на уровне INFO. Запись логов ведется в несколько файлов. Наиболее важные из них:
Файл | Описание |
---|---|
terminal.log | Основной лог-файл кассовой программы, содержит большинство информации о процессе работы |
frdriver.log | Лог драйвера фискального регистратора |
scale.log | Лог драйвера прикассовых весов |
reader.log | Лог драйвера считывателя |
Допускается использование одного из уровней:
- TRACE,
- DEBUG,
- INFO,
- WARN,
- ERROR.
Самый детальный уровень называется TRACE, самый строгий - ERROR. В зависимости от выбранного уровня в лог записывается информация, которая соответствует уровню, или строже.
Уровень | Описание |
---|---|
ERROR | Ошибка в приложении, приложение может работать дальше без возникновения проблем, причина проблемы может состоять в неправильных входных данных или доступе к внешним сервисам |
WARN | Некритичная ошибка, приложение может работать дальше без возникновения проблем, вероятно одна из функций приложения дала сбой, который может быть исправлен |
INFO | Важная информация о работе приложения, например, запуск/остановка приложения, использование конфигурационных файлов или аутентификация пользователя в системе |
DEBUG | Отладочная информация работы приложения, например, технические данные, полученные при работе с внешними системами, или информация о вызове методов объектов, включая список параметров |
TRACE | Трассировка выполнения приложения, например, информация о вызываемых методах и времени их работы, информация о времени вызова внешних сервисов. |
Для изменения уровня детализации достаточно установить требуемый уровень первым параметром требуемого логгера.
Properties\log4j.appender.term=org.apache.log4j.FileAppender Properties\log4j.appender.term.file=/linuxcash/logs/current/terminal.log Properties\log4j.appender.term.appendFile=true Properties\log4j.appender.term.layout=org.apache.log4j.TTCCLayout Properties\log4j.appender.term.layout.DateFormat=ISO8601 Properties\log4j.additivity.terminal=false Properties\log4j.logger.terminal="INFO, term"
Ротация данных после закрытия смены
Запуск процесса ротации файлов осуществляется после закрытия смены при помощи shell-скрипта /linuxcash/cash/bin/oncloseshift.sh,
выполнение которого настраивается через макрос «Закрытие смены», как вызов внешнего скрипта.
artix-maint-mysql
. Журналы событий за текущую смену переименовываются в соответствии с правилами ротации, заданными в разделе shiftly
.Остановка работы кассы при ошибке логирования
Начиная с версии 4.6.105 кассовая программа приостанавливает функционирование в случае прекращения записи в любой из логов, которые пишет сама касса, до устранения неполадок.
Остановка логирования при работе кассы - серьезная проблема, она может быть следствием прекращения правильной работы кассы. Такие ситуации возможны при непредвиденном отключении электроэнергии в процессе функционирования кассы, а также при проблемах с комплектующими.
При возникновении ошибки, связанной с прекращением логирования, программа остановит работу и выдаст сообщение:
Необходимо восстановить возможность логирования данных, после чего нажать ОК - программа перезапустится в нормальном режиме.