Я работаю над преобразованием в библиотеку logging
для всех моих журналов, но я застрял на этом шаге некоторое время. Я обычно вхожу в консоль с некоторыми escape-последовательностями цветового кода для форматирования. Это хорошо работает в консоли, но не в файлах журналов, которые не должны иметь escape-последовательностей. Поэтому у меня есть функция, которая обрезает escape-последовательности. Однако я не могу понять, как связать эту функцию с форматером, который я использую для вывода на консоль.
Вот что у меня есть для настройки регистрации:
file_formatter = new_logging.Formatter(log_file_format)
file_handler = logging.FileHandler(output_path)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(file_formatter)
logging.getLogger().addHandler(file_handler)
console_formatter = logging.Formatter(log_console_format)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)
console_handler.setFormatter(console_formatter)
logging.getLogger().addHandler(console_handler)
По сути, моя цель - автоматически запустить функцию remove_escape_sequences(log_string)
как часть file_formatter
. Сейчас это просто строка с заполнителями, '%(asctime)s %(levelname)8s: "%(name)24s" - %(message)s'
. Как я могу это сделать?