jeanmichel at sequans.com
Mon Feb 20 12:07:49 EST 2012
Arnaud Delobelle wrote:
> On 20 February 2012 16:03, Jason Friedman <jason at powerpull.net> wrote:
>> I am logging to HTTP:
>> logger.addHandler(logging.handlers.HTTPHandler(host, url))
>> Works great, except if my HTTP server happens to be unavailable:
>> socket.error: [Errno 111] Connection refused
>> Other than wrapping all my logger.log() calls in try/except blocks, is
>> there a way to skip logging to the HTTPhandler if the HTTP server is
> Here's one: subclass HTTPHandler :)
> logging.raiseExceptions = 0
long and incomplete answer:
log calls should not raise any exception.
This method should be called from handlers when an exception is
encountered during an emit() call. By default it does nothing, which
means that exceptions get silently ignored. This is what is mostly
wanted for a logging system - most users will not care about errors in
the logging system, they are more interested in application errors. You
could, however, replace this with a custom handler if you wish. The
specified record is the one which was being processed when the exception
However, I looked into the code and find out an (undocumented ?)
attribute of the logging module : raiseException which value is set to 1
by default (python 2.5.2 logging.__version__ < '0.5.0.2' > ).
When set to 1, handlerError print the traceback.
This has been probably fixed in recent version of the module since the
handleError doc does not reference raiseException anymore.
More information about the Python-list