Журнали
Кожна програма і кожна служба "Рахівниці" веде власний журнал роботи. Це перше, куди варто зазирнути, коли щось працює не так, і це те, що потрібно надіслати в підтримку разом з описом проблеми.
Де лежать файли
Каталог журналів не налаштовується. Програма пробує кілька місць по черзі і пише в перше, куди їй вдалося записати.
У Windows:
%ProgramData%\Abacus\Logs\- каталог
Logsпоруч з виконуваним файлом програми %LocalAppData%\Abacus\Logs\
У Linux (стосується лише служб):
/var/log/abacus//opt/abacus/log/~/.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:
У служб такий самий блок лежить у їхньому власному конфігу
(abhard.yaml, abasyn.yaml, abrest.yaml) і має ще одне поле - ім'я файлу:
| Ключ | Типово | Опис |
|---|---|---|
file |
ім'я служби | Ім'я файлу журналу. Лише у служб; програми беруть ім'я зі своєї назви |
level |
3 у служб, 2 у програм |
Скільки подробиць потрапляє в журнал, див. таблицю нижче |
maxsizekb |
10240 |
Розмір у кілобайтах, після якого файл відкладається в архів. 0 вимикає поділ, і файл росте без обмежень |
keepfiles |
10 |
Скільки файлів лишати в каталозі разом з поточним. 0 вимикає прибирання, і архіви накопичуються без обмежень |
Зміни набувають чинності після перезапуску програми або служби.
Рівні деталізації
level |
Що потрапляє в журнал |
|---|---|
0 |
Лише помилки |
1 |
Помилки й попередження |
2 |
Додатково інформаційні повідомлення про хід роботи |
3 |
Додатково налагоджувальні подробиці |
Якщо журнал росте надто швидко, зменшуйте level передусім - це прибирає
причину, тоді як менший maxsizekb лише частіше перекладає ті самі рядки в
архів. Але для звернення в підтримку потрібен саме 3: на нижчих рівнях у
файлі не буде подробиць, за якими можна відтворити проблему.
Поділ і прибирання архівів
Розмір перевіряється після кожного записаного рядка, тому файл може на кілька
сотень байтів перевищити maxsizekb - рядок ніколи не розривається між двома
файлами.
Зайві архіви видаляються двічі: одразу після чергового поділу і під час запуску програми. Поточний файл - той, що без дати в імені - не видаляється ніколи.
Якщо файл не вдалося відкласти в архів (наприклад, його тримає антивірус),
програма продовжує писати в нього далі й повторює спробу пізніше. Журнал у
такому разі тимчасово перевищить maxsizekb, але жодного рядка не буде
втрачено.