Sto cercando un modo per eseguire una formattazione di stringa parziale nei programmi di registrazione di Python.
Quando si cerca di definire un formattatore seguente modo:
Formattazione di stringhe parziali nei formattori di registrazione Python
formatter = logging.Formatter('[num-%d] %(levelname)s %(message)s' % (num,))
mi metterò un TypeError con "formato richiede una mappatura" che è ragionevole come l'interprete non riusciva a trovare 'levelName' e 'Messaggio'.
Ovviamente, vorrei che sia "levelname" che "message" non siano formattati per il framework di registrazione da gestire.
come la vedo io, ci sono altri due modi di affrontare la questione:
format = '[num-' + str(num) + '] %(levelname)s %(message)s' % (num,)
format = '[num-%(num)d] %(levelname)s %(message)s' % dict(num=num, levelname='%(levelname)s', message='%(message)s')
Tuttavia, ritengo che entrambe le soluzioni un po 'brutto, e non ci credo deve essere un modo migliore per formattare solo parte della stringa - in Python, o utilizzando il framework di registrazione incorporato di python.
Qualche idea?
duplicato di http://stackoverflow.com/questions/4928526/python-format-string – Stefano