Пользовательская функция входа в систему с использованием Python

#python #python-3.x #logging

Вопрос:

Я хотел добавить некоторые записи в отчеты о цветной печати. Наивный подход состоял в том, чтобы создать функцию

 def log_and_print(msg,level='info',color="", reset=""):
    if level == 'info':
        logging.info(msg)
    elif level == 'debug':
        logging.debug(msg)
    print(color str(msg) reset)
 

Это работает нормально, но обнаружил, что, конечно, регистрируемый путь больше не является правильным. Есть ли какое-то лучшее решение? Я надеялся, что смогу сохранить функцию log_and_print, так как она используется во многих местах.

Комментарии:

1. Посмотри вокруг github.com/willmcgugan/rich

2. Каков ожидаемый путь и какой путь вы получаете?

3. @Datajack Я полагаю, что источник сообщения журнала будет из другого файла/модуля, а не из log_and_print того места, откуда вызывается функция

4. @shoaib30 точно. Так что, возможно, предложение с Ричем-правильный подход. В этом случае мне, конечно, пришлось бы переписать все вызовы функции log_and_print.

5. @shoaib30 большое спасибо! Думаю, попробую войти-с-цветами и шибом. Цвет не привязан к уровню журнала. Другим решением было бы, возможно, каким-то образом прочитать путь родительской функции и добавить его в качестве дополнительного параметра для ведения журнала в качестве kwargs. Но кажется немного уродливым в качестве обходного пути.