Хронологія, історія, журнал подій – цей перелік об’єднує дещо спільне – поняття логування. Поговоримо про це більш детально у статті.
Логування: поняття, вимоги, рівні
- 22.02.2024
- Опубліковано: Admin

Що таке логи?
Логи (англ. – Log file) – це спеціальний текстовий файл з журналом подій про роботу системи у хронологічному порядку. Цей файл може зберігатися на ПК або сервері та містити в собі дані про дії програми або її окремих користувачів, параметри та стани системи під час її роботи. Також такий файл може мати дані про помилки в роботі системи. Процес створення записів у лог-файлі називається логуванням.
Для чого потрібні логи?
Основною метою логування є надання інформації, що дозволить проаналізувати помилки чи проблеми у роботі програми. Достатньо уявити ситуацію, коли є дві інтегровані системи і на якомусь із етапів роботи виникає помилка. Для того, щоб з’ясувати на стороні якої з програм вона виникла, якраз і потрібні будуть логи. Це також може допомогти у локалізації помилки, що виникла та подальшого її швидкого усунення.
Також варто розуміти, що далеко не для всього потрібно записувати логи.
Існують деякі процеси, які обов’язкові для логування, а саме:
- Початок та кінець роботи програми – важливо розуміти чи був запуск і завершення роботи програми, так як і очікувалось.
- Стани програми – перехід з одного стану в інший у бізнес-процесах.
- SQL-запити до бази даних.
- Параметри безпеки під час процесів реєстрації, авторизації, відновлення пароля та ін.
Які бувають логи?
В залежності від тієї чи іншої потреби зняття логів є деякі критерії, за якими можна оцінити їх:
- якість – чи міститься в записаних логах дійсно важлива інформація (окремі повідомлення, параметри тощо);
- повнота – чи достатньо інформації для того, щоб локалізувати місце виникнення помилки та відтворити кроки до появи дефекту на стороні розробника;
- цілісність – чи можна на основі наявної записаної інформації в логах побудувати ланцюг кроків, які призводять до помилки.
Спираючись на ці критерії, а також враховуючи різну специфіку, до якої може відноситись та чи інша програма, виникає потреба у класифікації логів. Ця класифікація може дещо різнитись в залежності від джерел інформації.
Отже, виділяють 6 рівнів логів:
1. Trace.
Цей рівень використовується тільки в середовищі розробки та тестування. До логів записуються значення всіх властивостей екземплярів класів у кожен момент змін, всі параметри методів та їхні виклики, в особливо критичних місцях логується виконання кожного рядка коду.
2. Debug.
Даний рівень використовується на продуктивному середовищі на короткий час для виявлення складних помилок.
3. Information.
Цей рівень логів про хронологію подій, що відбувались до та після виникнення помилки.
4. Warning.
Ідеться про щось некритичне, але підозріле, таке що може в подальшому призвести до серйозного збою. Для таких логів проводиться аналіз.
5. Error.
Те, що перериває виконання поточної операції та призводить до звернень клієнтів у технічну підтримку, але не впливає на подальшу роботу.
6. Fatal.
Це найвищий рівень логів за критичністю, коли система не може продовжувати функціонувати за поточних умов.
Не обов’язково потрібно використовувати тільки один рівень логів або всі одразу, їх можна комбінувати, наприклад Information+Warning+Error.
Популярні помилки в логуванні
Одразу можна сказати, чого точно не повинні містити в собі логи, а саме це:
- приватні та персональні дані користувачів;
- бізнес-аналітика і статистика;
- метрики продуктивності та статистика швидкодії.
Також до поширених помилок в логуванні можна віднести надлишок логування. Не потрібно записувати в журнал кожен крок, де більшість буде очевидними або повторюваними. Згідно раціонального підходу логи можуть навантажувати працездатність максимум на 10%. В іншому випадку можуть виникнуть проблеми з продуктивністю роботи програми.
Логування всіх даних в один файл може призвести до того, що буде складно читати цей файл або продовжувати записувати в нього інформацію. Також варто враховувати, що існують обмеження за розміром файлів у певних системах.
Використання неправильних рівнів логування. Кожен рівень логування має свої межі, і їх варто дотримуватися. Якщо межі неоднозначні, то потрібно узгодити який із рівнів і де буде використовуватись.
Як знайти логи?
Доступ до логів буде відрізнятися залежно від того, який використовується хостинг – простий віртуальний або VPS/виділений сервер. Розглянемо окремо як переглянути логи в кожній із цих ситуацій.
-
На віртуальному хостингу
У цьому випадку доступ до логів сервера буде обмежено, можна подивитися тільки те, що налаштує до перегляду провайдер хостингу. Зазвичай це логи помилок веб-сервера та відвідувань сайту, а також логи PHP. Їх можна знайти, встановивши панель керування cPanel. На головній сторінці cPanel потрібно зайти в розділ «Показники». У ньому є кілька додатків, де зберігаються логи: «Відвідувачі» та «Прямий доступ».
-
На VPS або виділеному сервері
Даний спосіб надає повний доступ до логів сервера. За замовчуванням більшість логів Windows можна переглянути, запустивши через консоль команду eventvwr.msc, після чого відкриється вікно Перегляду подій. Логи на Linux зберігаються в папці /var/log/, але деякі програми можуть перевизначати цей шлях і зберігати свої логи в інших місцях. А також стандартний шлях до логів можна змінити вручну в файлах конфігурації потрібної програми. Щоб подивитися логи в Linux, швидше за все вам знадобиться root доступ до сервера. Також можна встановити утиліту lnav. За її допомогою працювати з логами буде зручніше.
Переваги логування:
- Лог-файли надають інформацію про те, що відбувається на сайті. Журнали веб-сервера є важливим джерелом інформації для розробників, веб-майстрів, системних адміністраторів та інтернет-провайдерів.
- Логи містять дані про кількість людей, які відвідали веб-сайт, як довго вони залишалися на ньому, звідки вони прийшли і що вони робили під час перегляду сайту. Ці дані корисні для розуміння того, як використовується веб-сайт або додаток.
- Лог-файли також містять відомості про програмне забезпечення, запущене на комп’ютері, та його мережеві підключення до інших систем. Журнали також можна використовувати для виявлення шкідливих дій, таких як злом або розсилання спаму.
- Відповідність стандартам і регулятивним вимогам. Деякі регулятивні органи вимагають зберігання логів для певного періоду часу.
- Аналіз проблем безпеки. Логи можуть допомогти виявити потенційні проблеми безпеки та допомогти у ліквідації їх наслідків.
- Запобігання проблемам. Логи можуть виявити потенційні проблеми перед тим, як вони стануть серйозними.
Недоліки логування:
- Витрати на зберігання – генерується велика кількість даних під час запису логів, які потрібно зберігати. Це може бути дороговартісно, особливо, якщо логи зберігаються протягом тривалого часу.
- Проблеми з приватністю – логи можуть містити конфіденційну інформацію, наприклад IP-адреси, імена користувачів, тощо. Це може призвести до проблем з приватністю, якщо такі дані потрапляють в руки зловмисників.
- Продуктивність – логування може вплинути на продуктивність системи, особливо якщо воно виконується в режимі реального часу.
- Невідповідність часу – якщо системи, що ведуть записи, не синхронізовані, це може ускладнити аналіз проблем, що виникли між різними системами.
Логування може значно спростити життя, якщо вміло користуватись та працювати з ними. Але і не є запорукою вирішення будь-яких проблем, пов’язаних з історією користувацьких чи системних дій.
