Vinay Sajip added the comment: Data point: if you print out _handlerList immediately after the dictConfig() call, it *is* there, as I would have expected. The following script saved as logtest6.py:
from datetime import datetime from time import sleep import sys if __name__ == '__main__': LOGGING = { 'version': 1, 'handlers': { 'logfile': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': '/tmp/debug.log', }, }, } print('%s: starting' % (datetime.now(),)) from logging.config import dictConfig dictConfig(LOGGING) from logging import _handlerList print('%s: after dictconfig' % (datetime.now(),)) sys.stdout.flush() print('_handlerList 1:', _handlerList) # using importlib on a new file triggers the warnings import importlib, shutil, os print('_handlerList 2:', _handlerList) shutil.copy(__file__, __file__ + '.new') os.unlink(__file__) os.rename(__file__ + '.new', __file__) importlib.import_module('logtest6') sys.stderr.flush() print('%s: after error' % (datetime.now(),)) sys.stdout.flush() sleep(5) print('%s: after sleep' % (datetime.now(),)) # Vinay Sajip wrote: # > The handlers are AFAIK referenced - if you peek at # logging._handlerList or logging._handlers you should see them in # there. from logging import _handlerList, _handlers print('_handlerList 3:', _handlerList) else: print('imported once') When run, yields $ python3.4 logtest6.py 2015-01-06 12:26:46.910634: starting 2015-01-06 12:26:47.290223: after dictconfig _handlerList 1: [<weakref at 0xb7223e34; to 'FileHandler' at 0xb71680dc>] /home/vinay/projects/python/3.4/Lib/collections/__init__.py:373: ResourceWarning: unclosed file <_io.FileIO name='/tmp/debug.log' mode='ab'> exec(class_definition, namespace) _handlerList 2: [] imported once 2015-01-06 12:26:47.388877: after error 2015-01-06 12:26:52.394514: after sleep _handlerList 3: [] ---------- _______________________________________ 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