Лучше всего было бы использовать пользовательский форматер (вместо логирования. Формататор) ... Для справки вот исходный код для логирования. Форматирующий формат:
def format(self, record):
record.message = record.getMessage()
if string.find(self._fmt,"%(asctime)") >= 0:
record.asctime = self.formatTime(record, self.datefmt)
s = self._fmt % record.__dict__
if record.exc_info:
# Cache the traceback text to avoid converting it multiple times
# (it's constant anyway)
if not record.exc_text:
record.exc_text = self.formatException(record.exc_info)
if record.exc_text:
if s[-1:] != "\n":
s = s + "\n"
s = s + record.exc_text
return s
Это довольно ясно для менячто если self._fmt читается из текстового файла (одной строкой), то никакого удаления из него невозможно.Может быть, вы можете расширить логирование. Отформатировать, переопределить этот метод и заменить 4-ю строку на что-то вроде:
s = self._fmt.replace('\\n', '\n') % record.__dict__
или что-то более общее, если вы хотите, чтобы другие вещи также были экранированы.1008 * РЕДАКТИРОВАТЬ: альтернативно, вы можете сделать это в методе init , один раз (вместо того, чтобы каждый раз форматировать сообщение).Но, как уже отмечали другие, ConfigParser поддерживает несколько строк, поэтому нет необходимости идти по этому пути ...