]> granicus.if.org Git - python/commitdiff
Added _handlerList to allow shutdown to flush and close handlers in reverse order...
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Thu, 8 Sep 2005 18:14:16 +0000 (18:14 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Thu, 8 Sep 2005 18:14:16 +0000 (18:14 +0000)
Lib/logging/__init__.py

index 642b4ec3d5c30469ec8f1d12ce4c69aeae4d59cb..cee5fa2cf2bc249ead5bed4a6d152eb719f21947 100644 (file)
@@ -544,6 +544,7 @@ class Filterer:
 #---------------------------------------------------------------------------
 
 _handlers = {}  #repository of handlers (for flushing when shutdown called)
+_handlerList = [] # added to allow handlers to be removed in reverse of order initialized
 
 class Handler(Filterer):
     """
@@ -566,6 +567,7 @@ class Handler(Filterer):
         _acquireLock()
         try:    #unlikely to raise an exception, but you never know...
             _handlers[self] = 1
+            _handlerList.insert(0, self)
         finally:
             _releaseLock()
         self.createLock()
@@ -668,6 +670,7 @@ class Handler(Filterer):
         _acquireLock()
         try:    #unlikely to raise an exception, but you never know...
             del _handlers[self]
+            _handlerList.remove(self)
         finally:
             _releaseLock()
 
@@ -1307,7 +1310,7 @@ def shutdown():
 
     Should be called at application exit.
     """
-    for h in _handlers.keys():
+    for h in _handlerList[:]: # was _handlers.keys():
         #errors might occur, for example, if files are locked
         #we just ignore them
         try: