Vinay Sajip added the comment:

The delay= is not really a workaround for this particular circumstance, it's 
mainly there to avoid leaving empty files around and allocating resources that 
might never be used (which is analogous to this issue, but delay was not 
implemented to work around this specific scenario).

The handlers are AFAIK referenced - if you peek at logging._handlerList or 
logging._handlers you should see them in there.

A config dictionary is not judged as being illegal just because it contains 
unused handlers - you just happen to allocate resource that you never use. You 
could just leave out the handlers, since you're never using them; it's not 
logging's job to be overly restrictive about this sort of thing. Python doesn't 
warn you for allocating a dictionary that you never populate, or if you 
populate a dictionary that you then never interrogate. The type of unnecessary 
allocation of resources you're talking about happens a lot in programs - in 
fact, it also applies to loggers, since you might never use them in a specific 
program run, because of which code gets run based on command-line arguments, or 
with handlers that are "used" (in the sens you mean here, because they are 
linked to loggers), but never *actually* used because the levels in the 
configuration are set to CRITICAL, and there are no .critical() calls 
encountered during a program run. I'm not sure a line can usefully be drawn 
regarding
  "useless" allocations.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue23010>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to