Werner F. Bruhin wrote:
I see the following exception with a string formating problem.

TypeError: not all arguments converted during string formatting
Traceback (most recent call last):
 File "/usr/lib/python2.5/logging/__init__.py", line 744, in emit
   msg = self.format(record)
 File "/usr/lib/python2.5/logging/__init__.py", line 630, in format
   return fmt.format(record)
 File "/usr/lib/python2.5/logging/__init__.py", line 418, in format
   record.message = record.getMessage()
 File "/usr/lib/python2.5/logging/__init__.py", line 288, in getMessage
   msg = msg % self.args

The exception does not give any information on where the problem is coming from.

I am using Python 2.5.4 but I see that in 2.6 the code is still the same.

Any chance that getMessage could catch this exception and provide better debugging information (i.e. content of msg and self.args).
I understand that my problem is that the arguments don't match the
format.  But currently the traceback is not of any help in figuring out
where this in my code this is.

So, I suggest that line 288 in getMessage is changed from:

       msg = msg % self.args

To something along these lines:
       if self.args:
           try:
               msg = msg % self.args
           except:
               print 'msg: %s' % msg
               print 'args: %s' % self.args
               traceback.print_exception(ei[0], ei[1], ei[2])
       return msg

Werner


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to