logging

Модуль logging в Python забезпечує гнучкий спосіб створення логів в програмах. Ось найпростіший приклад використання модуля logging:

import logging

# Налаштування базового конфігураційного рівня та формату
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

# Створення повідомлення логів
logging.debug('Це повідомлення для відладки')
logging.info('Це інформаційне повідомлення')
logging.warning('Це попередження')
logging.error('Це помилка')
logging.critical('Це критичне повідомлення')

У цьому прикладі:

  1. logging.basicConfig() використовується для налаштування базових параметрів логування, таких як рівень важливості повідомлень та формат виводу.

  2. level=logging.INFO означає, що будуть відображатись повідомлення рівня INFO та вище (INFO, WARNING, ERROR, CRITICAL).

  3. format='%(asctime)s - %(levelname)s - %(message)s' задає формат виводу повідомлень, включаючи час, рівень важливості та саме повідомлення.

Коли ви запустите цей код, ви побачите на екрані всі повідомлення, починаючи з рівня INFO:

2024-05-28 10:00:00,000 - INFO - Це інформаційне повідомлення
2024-05-28 10:00:00,001 - WARNING - Це попередження
2024-05-28 10:00:00,002 - ERROR - Це помилка
2024-05-28 10:00:00,003 - CRITICAL - Це критичне повідомлення

Повідомлення з рівнем DEBUG не буде відображене, оскільки поточний рівень логування встановлено на INFO.

Лог у файл

Щоб записувати логи в файл, потрібно налаштувати logging.basicConfig() для вказівки файлу, куди будуть зберігатись логи. Ось приклад:

import logging

# Налаштування базового конфігураційного рівня, формату та файлу для логів
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s',
    filename='app.log',  # Ім'я файлу для збереження логів
    filemode='w'  # Режим запису: 'w' для перезапису файлу, 'a' для додавання до існуючого файлу
)

# Створення повідомлення логів
logging.debug('Це повідомлення для відладки')
logging.info('Це інформаційне повідомлення')
logging.warning('Це попередження')
logging.error('Це помилка')
logging.critical('Це критичне повідомлення')

У цьому прикладі:

  1. filename='app.log' визначає ім'я файлу, куди будуть записані логи.

  2. filemode='w' означає, що файл буде перезаписано щоразу при запуску програми. Якщо ви хочете додавати логи до існуючого файлу, використовуйте filemode='a'.

Коли ви запустите цей код, вказані повідомлення будуть записані в файл app.log:

2024-05-28 10:00:00,000 - INFO - Це інформаційне повідомлення
2024-05-28 10:00:00,001 - WARNING - Це попередження
2024-05-28 10:00:00,002 - ERROR - Це помилка
2024-05-28 10:00:00,003 - CRITICAL - Це критичне повідомлення

Як і раніше, повідомлення з рівнем DEBUG не буде записане, оскільки поточний рівень логування встановлено на INFO.

Логирование в Python: руководство разработчика - https://habr.com/ru/companies/wunderfund/articles/683880/

Last updated