logging exceptions

Vinay Sajip vinay_sajip at yahoo.co.uk
Wed Aug 27 04:33:52 EDT 2008


On Aug 26, 10:36 am, Alexandru  Mosoi <brtz... at gmail.com> wrote:
> why doesn'tloggingthrow any exception when it should? how do I
> configureloggingto throw exceptions?
>
> >>> try:
>
> ...  logging.fatal('asdf %d', '123')
> ... except:
> ...   print 'this line is never printed'
> ...
> Traceback (most recent call last):
>   File "/Library/Frameworks/Python.framework/Versions/2.5/lib/
> python2.5/logging/__init__.py", line 744, in emit
>     msg = self.format(record)
>   File "/Library/Frameworks/Python.framework/Versions/2.5/lib/
> python2.5/logging/__init__.py", line 630, in format
>     return fmt.format(record)
>   File "/Library/Frameworks/Python.framework/Versions/2.5/lib/
> python2.5/logging/__init__.py", line 418, in format
>     record.message = record.getMessage()
>   File "/Library/Frameworks/Python.framework/Versions/2.5/lib/
> python2.5/logging/__init__.py", line 288, in getMessage
>     msg = msg % self.args
> TypeError: int argument required

Was your traceback from the snippet you posted? If it was, then the
exception (a TypeError) *is* being raised from logging. So I don't
understand your question "why doesn't logging throw any exception when
it should?", because logging is raising an exception here.

To cause logging to *not* raise exceptions, set
logging.raiseExceptions to 0 (default is 1). The raiseExceptions
variable would normally be set to 0 in a production environment, where
you don't want logging-related exceptions to bring an application
down.

Regards,

Vinay Sajip



More information about the Python-list mailing list