...
- Файлы с образами чеков сохраняются в директорию
/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
. В В зависимости от выбранного уровня в лог в лог записывается информация, которая соответствует уровню, или строже.
Уровень | Описание |
---|---|
ERROR | Ошибка в приложении, приложение может работать дальше без возникновения проблем, причина проблемы может состоять в неправильных входных данных или доступе к внешним сервисам |
WARN | Некритичная ошибка, приложение может работать дальше без возникновения проблем, вероятно одна из функций приложения дала сбой, который может быть исправлен |
INFO | Важная информация о работе приложения, например, запуск/остановка приложения, использование конфигурационных файлов или аутентификация пользователя в системе |
DEBUG | Отладочная информация работы приложения, например, технические данные, полученные при работе с внешними системами, или информация о вызове методов объектов, включая список параметров |
TRACE | Трассировка выполнения приложения, например, информация о вызываемых методах и времени их работы, информация о времени вызова внешних сервисов. |
Для изменения уровня детализации достаточно установить требуемый уровень первым параметром требуемого логгера.
Code Block | ||||
---|---|---|---|---|
| ||||
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
, выполнение которого настраивается через макрос «Закрытие смены», как вызов внешнего скрипта.
...
Остановка работы кассы при ошибке логирования
...
Остановка логирования при работе кассы - – серьезная проблема, она может быть следствием прекращения правильной работы кассы. Такие Такие ситуации возможны при непредвиденном отключении электроэнергии в процессе функционирования кассы, а также при проблемах с комплектующими.
...
Необходимо восстановить возможность логирования данных, после чего нажать ОК - программа перезапустится в нормальном режиме. .
Вывод информации о внутренних процессах
Panel |
---|
Начиная с версии 4.6.176 реализован вывод информации о внутренних процессах в файл |
Вывод информации о внутренних процессах кассового ПО Artix в файл /linuxcash/logs/current/trace.txt
выполняется при:
- перезагрузке кассы с помощью команд
reboot
,pkill artix-gui
,shutdown -r now
; - наличии файл-флага
/linuxcash/cash/data/tmp/tracestart
.
Code Block | ||||
---|---|---|---|---|
| ||||
11.02.2021 11:09:28 смена: 104, чек: 2
контексты: mainmenu authentication
выполняется: COMMAND_WHATEVER
формы: AuthenticationForm SomeAwesomeForm
top - 11:09:28 up 2:45, 4 users, load average: 0.15, 0.07, 0.06
Tasks: 135 total, 1 running, 134 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 97.9 id, 1.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 1024072 total, 780808 used, 243264 free, 109820 buffers
KiB Swap: 1000444 total, 824 used, 999620 free. 448384 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1840 root 20 0 69376 20636 8344 S 6.5 2.0 0:27.05 python
фреймы стека:
/linuxcash/cash/lib/libArtix.so(_ZN13SignalHandler8getTraceEv+0x60) [0xb7227870]
/linuxcash/cash/lib/libgui.so(_ZNK11TraceSystem18collectInformationEv+0x211) [0xb6a0df91]
/linuxcash/cash/lib/libgui.so(_ZN11TraceSystem8onChangeERK7QString+0x2a2) [0xb6a0dcd2]
/linuxcash/cash/lib/libgui.so(_ZN9QtPrivate11FunctorCallINS_11IndexesListIJLi0EEEENS_4ListIJRK7QStringEEEvM11TraceSystemFvS6_EE4callESA_PS8_PPv+0x85) [0xb6a0fa85]
/linuxcash/cash/lib/libgui.so(_ZN9QtPrivate15FunctionPointerIM11TraceSystemFvRK7QStringEE4callINS_4ListIJS4_EEEvEEvS6_PS1_PPv+0x63) [0xb6a0f9f3]
/linuxcash/cash/lib/libgui.so(_ZN9QtPrivate11QSlotObjectIM11TraceSystemFvRK7QStringENS_4ListIJS4_EEEvE4implEiPNS_15QSlotObjectBaseEP7QObjectPPvPb+0xbd) [0xb6a0f90d]
/opt/Qt/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectiiPPv+0xa4c) [0xad407b5c]
/opt/Qt/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectPKS_iPPv+0x37) [0xad407107]
/opt/Qt/lib/libQt5Core.so.5(+0x1cf357) [0xad352357]
/opt/Qt/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectiiPPv+0xae8) [0xad407bf8]
/opt/Qt/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectPKS_iPPv+0x37) [0xad407107]
/opt/Qt/lib/libQt5Core.so.5(+0x1cf5f8) [0xad3525f8]
/opt/Qt/lib/libQt5Core.so.5(+0x1d2f0f) [0xad355f0f]
/opt/Qt/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectiiPPv+0xae8) [0xad407bf8]
/opt/Qt/lib/libQt5Core.so.5(_ZN11QMetaObject8activateEP7QObjectPKS_iPPv+0x37) [0xad407107]
/opt/Qt/lib/libQt5Core.so.5(_ZN15QSocketNotifier5eventEP6QEvent+0x27d) [0xad40f41d]
/opt/Qt/lib/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0x100) [0xade6fae0] |