Quando ho un sacco di diversi moduli usando il modulo di registrazione standard di Python, la seguente analisi dello stack fa ben poco per aiutarmi a trovare dove, esattamente, ho avuto una dichiarazione di registro male formata:Trovare la fonte di errori di formato quando si utilizza python registrazione
Traceback (most recent call last):
File "/usr/lib/python2.6/logging/__init__.py", line 768, in emit
msg = self.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 648, in format
return fmt.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 436, in format
record.message = record.getMessage()
File "/usr/lib/python2.6/logging/__init__.py", line 306, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Sto solo iniziando a utilizzare il modulo di registrazione di Python, quindi forse sto trascurando qualcosa di ovvio. Non sono sicuro se lo stack-trace è inutile perché sto usando greenlets, o se questo è normale per il modulo di registrazione, ma qualsiasi aiuto sarebbe apprezzato. Sarei disposto a modificare la fonte, qualsiasi cosa per fare in modo che la libreria di logging dia effettivamente indicazioni su dove si trova il problema.
Beh, è un modo orribile per farlo, tuttavia è un approccio che vale la pena ricordare per quei casi in cui la modifica della libreria è completamente impossibile, quindi +1 – porgarmingduod
@porgarmingduod: Monkey-patching può non essere grandioso, ma non è affatto più orribile che manipolare la fonte del li standard brary. Le patch delle scimmie influenzeranno tutto il resto nello stesso processo, ma la modifica diretta della libreria interesserà tutto il resto dello stesso sistema. –