2017-02-10 11 views
1

Я знаю основы строковых форматов в python, но я не могу понять используемый формат в методе basicConfig регистрации!Тип формата при регистрации

FORMAT = '%(asctime)-15s %(clientip)s %(user)-8s %(message)s' 
logging.basicConfig(format=FORMAT) 

see Document

Что цель %(string)s формата типа, и когда они используются?

ответ

2

Это printf-style formating.

Правильный операнд % может быть кортежем или словарем (или другим отображением).

При использовании кортежа %d, %s, .... заменяются соответствующим артикулом по порядку.

При использовании словаря %(key)d, %(key)s, ... заменяются значением соответствующего key в словаре.

Например,

>>> FORMAT = '%(asctime)-15s %(clientip)s %(user)-8s %(message)s' 
>>> FORMAT % {'asctime': '2017-02-11', 'clientip': '1.2.3.4', 
       'user': 'who', 'message': 'blah'} 
'2017-02-11  1.2.3.4 who  blah' 

Использование %(key)d/словаря имеет некоторые преимущества:

  • Вам не нужно указывать спецификатор формата в порядке.
  • Вы можете повторить тот же ключ несколько раз: '%(num)d + %(num)d = %(double)d' % {'num': 3, 'double': 3 * 2}
+0

Очень приятно, спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^