Частичное форматирование строк в средствах форматирования журналов Python

Я ищу способ выполнить частичное форматирование строки в Python средства форматирования журналов.

При попытке определить средство форматирования следующим образом:

formatter = logging.Formatter ('[num-% d]% (levelname) s% (message) s'% (num,))

​​Я получу TypeError с "форматом требует сопоставления", что разумно, поскольку интерпретатор не может найти 'levelname' и 'message'.

Конечно, я бы хотел, чтобы и 'levelname' и 'message' отображали остаются неформатированными для обработки фреймворком ведения журнала.

Как я вижу, есть два других способа решения проблемы:

  1. format = '[num-' + str (num) + ']% (levelname) s% (message) s '% (num,)
  2. format =' [num -% (num) d]% (levelname) s% (message) s '% dict (num = num, levelname ='% ( levelname) s ', message ='% (message) s ')

Однако я нахожу оба решения несколько уродливыми и считаю, что должен быть лучший способ форматировать только часть строки - либо в Python или использование во встроенной среде ведения журналов python.

Есть идеи?

5
задан amito 24 August 2011 в 13:06
поделиться