[issue6435] logging: cache the traceback text on formatter, instead of record

Vinay Sajip report at bugs.python.org
Thu Jul 9 12:02:28 CEST 2009


Vinay Sajip <vinay_sajip at yahoo.co.uk> added the comment:

> But the cache needs to be invalidated when `exc_info` is changed -
> as in set to None when it was a traceback object.

When does the exc_info change for a record? AFAIK it's set when you 
create a LogRecord, and that's it.

To be honest, I'm not sure why you need that specific recipe. Notice 
the comment made by a user against the recipe. But if you are set on 
doing it like this, then suppose I configure as follows:

Create a StreamHandler(sys.stderr) and a StreamHandler(sys.stdout).
Create a Formatter and attach it to the output handler.
Create a Formatter with the format string used above but with 
an "error:" prefix, and attach it to the error handler.
Add a Filter to each handler. This can be a single Filter class which 
either passes everything above a threshold or everything below a 
threshold. This will only have a few lines of code. Attach two such 
instances, suitably configured, to the appropriate handlers.
Attach both handlers to the root logger (or some other logger).

How will this differ in its effect from your recipe?

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue6435>
_______________________________________


More information about the Python-bugs-list mailing list