Направляйте сообщения журнала Python на пользовательские функции в зависимости от их уровня.
В настоящее время я пытаюсь включить отличный модуль регистрации Python для вывода информации журнала в зависимости от их уровня регистрации на терминал внутри программного обеспечения с API-интерфейсом Python (например, Autodesk Maya).
Это программное обеспечение предлагает три функции регистрации, чтобы изменить их внешний вид в окне терминала:logInfo("message") //prints the log message in white (standard color)
logWarning("message") //prints the log message in green
logError("message") //prints the log message in red
Использование стандартной функции печати дает результат, подобный logInfo. Тем не менее, при использовании модуля регистрации питонов все сообщения отображаются красным цветом, несмотря на заданный уровень журнала (как если бы вывод был ошибкой).
Существует ли элегантный способ отображения или перенаправления всех сообщений из модуля ведения журнала в эти три различных сообщения в соответствии с их уровнем ведения журнала?
logger = logging.getLogger('myLogger')
logger.setLevel(logging.ERROR)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(ch)
# create some log messages
logger.info("info") // should be mapped to logInfo()
logger.warning("warning") // should be mapped to logWarning()
logger.error("error") // should be mapped to logError()
logger.debug("debug") // should be mapped to logWarning() but no output performed according to defined log level
Я не уверен, что пользовательский обработчик сделает работу или форматер, или это вообще возможно. Другие темы, такие как Как написать собственный обработчик журнала Python? на самом деле не облегчить вещи.
Любая помощь приветствуется!