Настройка цветного вывода в Python через модуль logging
Пройдите тест, узнайте какой профессии подходите
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы
Быстрый ответ
Для того чтобы добавить цветовую разметку в логи Python, можно создать подкласс Formatter и использовать ANSI escape-коды для управления цветом текста:
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("Ошибка — что-то пошло не так")
Данный подход позволяет интегрировать цветовые инструкции непосредственно в вывод логов, что облегчает восприятие и ускоряет распознавание уровней логирования.
Завершение
Включение цветов в вашу систему логирования – эффективный способ повышения читаемости и различимости уровней сообщений.
Визуализация
Вот так ваша консоль будет выглядеть после внедрения цветов в логи, словно библиотека, полная книг в яркой окраске:
📘: Информация – глубина океанской бездны
📙: Предупреждение – теплоятие закатного солнца
📕: Ошибка – порыв красного фейерверка в ночном небе
📗: Отладка – свежесть зеленой лужайки
После такого перевоплощения, ваши логи превратятся из обычных текстовых записей в сочные цветные полотна. Это поможет вам сразу определить, насколько серьёзна проблема, упомянутая в сообщении.
Полезные материалы
- Как можно добавить цвет в вывод логов Python? – Stack Overflow — общее обсуждение и варианты решения проблемы цветного логирования от сообщества.
- colorama · PyPI — библиотека, обеспечивающая работу с цветным текстом в консоли, поддерживает большое количество платформ.
- GitHub – borntyping/python-colorlog: Цветной форматтер для модуля логирования Python — служебная библиотека для модуля логирования Python, вносящая цветной вывод.
- GitHub – Textualize/rich: Rich — Python библиотека для форматирования текста и вывода в терминале — подробнее о Rich, библиотеке, предлагающей широкие возможности форматирования текста и поддержку цветового вывода в консоли.
- Коды управления ANSI – Wikipedia — справочные данные о ANSI escape-кодах, которые могут быть полезны при создании собственного цветового кодирования для терминала.