Перейти до змісту

Журнали

Кожна програма і кожна служба "Рахівниці" веде власний журнал роботи. Це перше, куди варто зазирнути, коли щось працює не так, і це те, що потрібно надіслати в підтримку разом з описом проблеми.

Де лежать файли

Каталог журналів не налаштовується. Програма пробує кілька місць по черзі і пише в перше, куди їй вдалося записати.

У Windows:

  1. %ProgramData%\Abacus\Logs\
  2. каталог Logs поруч з виконуваним файлом програми
  3. %LocalAppData%\Abacus\Logs\

У Linux (стосується лише служб):

  1. /var/log/abacus/
  2. /opt/abacus/log/
  3. ~/.config/abacus/log/

Якщо жоден з цих каталогів недоступний для запису, програма працює далі, але без журналу.

Імена файлів

Кожна програма пише у файл зі своїм іменем: app_sklad.log, app_casa.log, app_barcom.log, app_service.log, launcher.log. Служби беруть ім'я з власного конфіга - типово abhard.log, abasyn.log, abrest.log.

Коли файл виростає понад дозволений розмір, він отримує дату й час у імені - наприклад app_sklad-20260829-143255.log - а програма продовжує писати в чистий файл зі звичайним іменем. Тобто найсвіжіші записи завжди у файлі без дати, а файли з датою - це архів.

Налаштування

У програмах налаштування журналу лежать у файлі settings.yaml поруч з виконуваним файлом, у блоці log:

log:
  level: 2
  maxsizekb: 10240
  keepfiles: 10

У служб такий самий блок лежить у їхньому власному конфігу (abhard.yaml, abasyn.yaml, abrest.yaml) і має ще одне поле - ім'я файлу:

log:
  file: 'abhard.log'
  level: 3
  maxsizekb: 10240
  keepfiles: 10
Ключ Типово Опис
file ім'я служби Ім'я файлу журналу. Лише у служб; програми беруть ім'я зі своєї назви
level 3 у служб, 2 у програм Скільки подробиць потрапляє в журнал, див. таблицю нижче
maxsizekb 10240 Розмір у кілобайтах, після якого файл відкладається в архів. 0 вимикає поділ, і файл росте без обмежень
keepfiles 10 Скільки файлів лишати в каталозі разом з поточним. 0 вимикає прибирання, і архіви накопичуються без обмежень

Зміни набувають чинності після перезапуску програми або служби.

Рівні деталізації

level Що потрапляє в журнал
0 Лише помилки
1 Помилки й попередження
2 Додатково інформаційні повідомлення про хід роботи
3 Додатково налагоджувальні подробиці

Якщо журнал росте надто швидко, зменшуйте level передусім - це прибирає причину, тоді як менший maxsizekb лише частіше перекладає ті самі рядки в архів. Але для звернення в підтримку потрібен саме 3: на нижчих рівнях у файлі не буде подробиць, за якими можна відтворити проблему.

Поділ і прибирання архівів

Розмір перевіряється після кожного записаного рядка, тому файл може на кілька сотень байтів перевищити maxsizekb - рядок ніколи не розривається між двома файлами.

Зайві архіви видаляються двічі: одразу після чергового поділу і під час запуску програми. Поточний файл - той, що без дати в імені - не видаляється ніколи.

Якщо файл не вдалося відкласти в архів (наприклад, його тримає антивірус), програма продовжує писати в нього далі й повторює спробу пізніше. Журнал у такому разі тимчасово перевищить maxsizekb, але жодного рядка не буде втрачено.