Как каждый заставляет вход раскрасить Механизм Приложения Django/Google?

кажется мне как способ выделить объект на стеке..

14
задан Community 23 May 2017 в 11:46
поделиться

4 ответа

Коды сброса, упомянутые в ответе, на который вы указали ссылку, будут работать на консоли на локальном сервере разработки (но, скорее всего, потребуется некоторая настройка - вам придется связать их с существующим механизмом приложений. обработчик журналов), но не будет работать в производственной среде, поскольку записи производственного журнала выводятся на HTML-страницу в консоли администратора.

Однако вы можете фильтровать по уровню журнала в консоли администратора.

2
ответ дан 1 December 2019 в 07:12
поделиться

Я не верю, что вам следует создавать подкласс логгера только для этого - ответ airmind подойдет, если вы создадите специализированный Formatter и укажете его использование в StreamHandler . Но нет необходимости в подклассе регистратора. Фактически, использование airmind класса регистратора добавляет обработчик к каждому созданному регистратору, что вам не нужно.

Решение, которое предоставил airmind, работает только для терминалов, поддерживающих escape-последовательности ANSI - вы уверены, что ваша консоль поддерживает их?

2
ответ дан 1 December 2019 в 07:12
поделиться

Вот пример средства форматирования:

class Formatter(logging.Formatter) :
    _level_colors  = {
      "DEBUG": "\033[22;32m", "INFO": "\033[01;34m",
      "WARNING": "\033[22;35m", "ERROR": "\033[22;31m",
      "CRITICAL": "\033[01;31m"
     };    

    def format(self, record):
        if(Formatter._level_colors.has_key(record.levelname)):
            record.levelname = "%s%s\033[0;0m" % \
                            (Formatter._level_colors[record.levelname],
                             record.levelname)
        record.name = "\033[37m\033[1m%s\033[0;0m" % record.name
        return logging.Formatter.format(self, record)    

Вам необходимо настроить его, например:

...
[formatters]
keys=console_formatter
...
[handler_console_handler]
class=StreamHandler
formatter=console_formatter
args=(sys.stdout,)
3
ответ дан 1 December 2019 в 07:12
поделиться

Мне также нужен был цветной вывод для dev_appserver. Я нашел решения здесь с помощью небольшого OTT (все, что я хотел, - это выделить мои вызовы logging.error (). В итоге я запрограммировал модуль регистрации, отбросив его в свой main.py в качестве быстрого решения:

# monkey patch logger to dump ERRORs in red
import os
if os.environ['SERVER_SOFTWARE'].find('Development') >= 0:
    import logging
    old_error = logging.error
    def red_error(msg,*args,**kwargs):
        old_error("\033[22;31m%s\033[0;0m" % msg, *args, **kwargs)
    logging.error = red_error

Это будет только для клемм цвета ANSI.

4
ответ дан 1 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: