Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
10 Июл 2023
3 мин
2672

Как работать с логированием в Python

Логирование является важным инструментом для отслеживания и устранения ошибок, а также для понимания работы вашего кода в Python. В этой статье мы рассмотрим основы логирования в Python, включая его настройку и использование.

Введение в модуль logging

Стандартный модуль logging в Python предоставляет гибкий фреймворк для записи сообщений о событиях в различные выходные потоки, такие как файлы, консоль и даже по электронной почте. Он поддерживает разные уровни сообщений, такие как DEBUG, INFO, WARNING, ERROR и CRITICAL.

Настройка логирования

Чтобы начать, импортируйте модуль logging и создайте базовую конфигурацию с помощью метода basicConfig(). Здесь мы настроим логирование с уровнем сообщений INFO и выводом в файл app.log.

import logging

logging.basicConfig(filename='app.log', level=logging.INFO)

Запись сообщений лога

Теперь вы можете записать сообщения различных уровней с помощью соответствующих функций:

logging.debug("Это сообщение DEBUG")
logging.info("Это сообщение INFO")
logging.warning("Это сообщение WARNING")
logging.error("Это сообщение ERROR")
logging.critical("Это сообщение CRITICAL")

В результате в файле app.log появятся следующие строки:

INFO:root:Это сообщение INFO
WARNING:root:Это сообщение WARNING
ERROR:root:Это сообщение ERROR
CRITICAL:root:Это сообщение CRITICAL

Расширенная настройка логирования

Форматирование сообщений

Вы можете настроить формат сообщений лога, добавив аргумент format в метод basicConfig(). Например, добавим дату и времени, уровень сообщения и имя модуля:

logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(module)s - %(message)s')

Теперь сообщения в файле app.log будут выглядеть следующим образом:

2022-01-01 00:00:00,000 - INFO - my_module - Это сообщение INFO

Логирование в несколько мест

Если вы хотите выводить сообщения лога одновременно в файл и на экран, вы можете использовать handlers. Ниже приведен пример настройки логирования с двумя обработчиками:

logger = logging.getLogger()
logger.setLevel(logging.INFO)

file_handler = logging.FileHandler('app.log')
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(module)s - %(message)s'))

console_handler = logging.StreamHandler()
console_handler.setFormatter(logging.Formatter('%(levelname)s - %(message)s'))

logger.addHandler(file_handler)
logger.addHandler(console_handler)

Теперь при вызове функций для записи сообщений лога, они будут выводиться как в файл app.log, так и на экран.

Логирование исключений

Чтобы записать исключение в лог, используйте метод exception():

try:
    1 / 0
except ZeroDivisionError:
    logging.exception("Произошла ошибка деления на ноль")

В результате в логе появится запись с уровнем ERROR и информацией об исключении:

ERROR:root:Произошла ошибка деления на ноль
Traceback (most recent call last):
  File "my_module.py", line 2, in <module>
    1 / 0
ZeroDivisionError: division by zero

🚀 В заключение, логирование в Python позволяет отслеживать и диагностировать проблемы вашего кода с помощью мощного и гибкого инструментария. Не забывайте использовать логирование в своих проектах для улучшения качества и надежности вашего кода.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий