В питоне есть модуль logging, через который приложение может выводить логи, например, в терминал при отладке программы. По умолчанию вывод выглядит просто как сплошной поток текста, однако его можно раскрасить, чтобы разные типы сообщений (DEBUG, INFO и т.п.) печатались разными цветами. Для этого нужно сконфигурировать форматер логов и протащить его в программу, сделать это можно разными способами в ini-файле проекта или внутри самой программы.
В сети много рецептов форматеров, однако можно просто поставить готовый модуль, например, colorlog
. Ниже я расскажу о разных способах его подключения к проекту и конфигурации.
Ставится модуль традиционно: pip install colorlog
или easy_install colorlog
, работает во втором и третьем питоне.
Простейший способ подключить к проекту — это добавить форматер в ini-конфиге. Для этого добавьте в секцию [formatters]
новый ключ color
:
[formatters]
keys = generic, color
А затем добавьте новую секцию [formatter_color]
:
[formatter_color]
class = colorlog.ColoredFormatter
format = %(log_color)s%(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s%(reset)s
Теперь можно указывать этот форматер (color
) вместо стандартного generic
:
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = color
Теперь при запуске проекта все логи будут раскрашены.
К сожалению, при такой конфигурации нельзя выставить свои цвета для разных уровней логов, потому что эти данные нельзя выставить через ini. Выкрутиться можно разными способами, например, отнаследоваться в своём проекте от класса colorlog.ColoredFormatter
и в конструкторе переопределить цвета, а затем указывать именно этот свой класс в конфиге форматера [formatter_color]
.