Настройка цветного вывода в Python через модуль logging

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для того чтобы добавить цветовую разметку в логи Python, можно создать подкласс Formatter и использовать ANSI escape-коды для управления цветом текста:

Python
Скопировать код
import logging

class ColoredFormatter(logging.Formatter):
    COLORS = {'DEBUG': '\033[94m', 'INFO': '\033[92m', 'WARNING': '\033[93m',
              'ERROR': '\033[91m', 'CRITICAL': '\033[95m'}

    def format(self, record):
        log_fmt = f"{self.COLORS.get(record.levelname, '')}%(message)s\033[0m"
        formatter = logging.Formatter(log_fmt)
        return formatter.format(record)

logging.basicConfig(level=logging.DEBUG, format='%(levelname)s:', handlers=[logging.StreamHandler()])
logging.getLogger().handlers[0].setFormatter(ColoredFormatter())

logging.info("Информация — все под контролем")
logging.warning("Предупреждение — обнаружены некоторые проблемы")
logging.error("Ошибка — что-то пошло не так")

Данный подход позволяет интегрировать цветовые инструкции непосредственно в вывод логов, что облегчает восприятие и ускоряет распознавание уровней логирования.

Кинга Идем в IT: пошаговый план для смены профессии

Завершение

Включение цветов в вашу систему логирования – эффективный способ повышения читаемости и различимости уровней сообщений.

Визуализация

Вот так ваша консоль будет выглядеть после внедрения цветов в логи, словно библиотека, полная книг в яркой окраске:

Markdown
Скопировать код
📘: Информация    – глубина океанской бездны
📙: Предупреждение – теплоятие закатного солнца
📕: Ошибка         – порыв красного фейерверка в ночном небе
📗: Отладка        – свежесть зеленой лужайки

После такого перевоплощения, ваши логи превратятся из обычных текстовых записей в сочные цветные полотна. Это поможет вам сразу определить, насколько серьёзна проблема, упомянутая в сообщении.

Полезные материалы

  1. Как можно добавить цвет в вывод логов Python? – Stack Overflow — общее обсуждение и варианты решения проблемы цветного логирования от сообщества.
  2. colorama · PyPI — библиотека, обеспечивающая работу с цветным текстом в консоли, поддерживает большое количество платформ.
  3. GitHub – borntyping/python-colorlog: Цветной форматтер для модуля логирования Python — служебная библиотека для модуля логирования Python, вносящая цветной вывод.
  4. GitHub – Textualize/rich: Rich — Python библиотека для форматирования текста и вывода в терминале — подробнее о Rich, библиотеке, предлагающей широкие возможности форматирования текста и поддержку цветового вывода в консоли.
  5. Коды управления ANSI – Wikipedia — справочные данные о ANSI escape-кодах, которые могут быть полезны при создании собственного цветового кодирования для терминала.