]> granicus.if.org Git - python/commitdiff
Issue 5013: Fixed bug in FileHandler when delay was set.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 20 Jan 2009 22:49:13 +0000 (22:49 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 20 Jan 2009 22:49:13 +0000 (22:49 +0000)
Lib/logging/__init__.py
Misc/NEWS

index 67765009d5a92bd445b8660d5fbea980bd75bbf5..5ba9732eb8dd502aca15dcdcbe87bab40ce55c4c 100644 (file)
@@ -21,7 +21,7 @@ comp.lang.python, and influenced by Apache's log4j system.
 Should work under Python versions >= 1.5.2, except that source line
 information is not available unless 'sys._getframe()' is.
 
-Copyright (C) 2001-2008 Vinay Sajip. All Rights Reserved.
+Copyright (C) 2001-2009 Vinay Sajip. All Rights Reserved.
 
 To use, simply 'import logging' and log away!
 """
@@ -47,7 +47,7 @@ except ImportError:
 __author__  = "Vinay Sajip <vinay_sajip@red-dove.com>"
 __status__  = "production"
 __version__ = "0.5.0.5"
-__date__    = "24 January 2008"
+__date__    = "20 January 2009"
 
 #---------------------------------------------------------------------------
 #   Miscellaneous module data
@@ -730,7 +730,6 @@ class StreamHandler(Handler):
         if strm is None:
             strm = sys.stderr
         self.stream = strm
-        self.formatter = None
 
     def flush(self):
         """
@@ -785,10 +784,12 @@ class FileHandler(StreamHandler):
         self.mode = mode
         self.encoding = encoding
         if delay:
+            #We don't open the stream, but we still need to call the
+            #Handler constructor to set level, formatter, lock etc.
+            Handler.__init__(self)
             self.stream = None
         else:
-            stream = self._open()
-            StreamHandler.__init__(self, stream)
+            StreamHandler.__init__(self, self._open())
 
     def close(self):
         """
@@ -820,8 +821,7 @@ class FileHandler(StreamHandler):
         constructor, open it before calling the superclass's emit.
         """
         if self.stream is None:
-            stream = self._open()
-            StreamHandler.__init__(self, stream)
+            self.stream = self._open()
         StreamHandler.emit(self, record)
 
 #---------------------------------------------------------------------------
index ca72fcfadb9a34aff5ca68551741ab424330ed47..30c3a0f7e30fc95eeec6162b98d9c04e6dbe7704 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@ What's New in Python 2.6.2
 Core and Builtins
 -----------------
 
+- Issue #5013: Fixed a bug in FileHandler which occurred when the delay
+  parameter was set.
+
 - Issue #4935: The overflow checking code in the expandtabs() method common
   to str, bytes and bytearray could be optimized away by the compiler, letting
   the interpreter segfault instead of raising an error.
@@ -59,7 +62,7 @@ Core and Builtins
 - Issue #4589: Fixed exception handling when the __exit__ function of a
   context manager returns a value that cannot be converted to a bool.
 
-- Issue #4233: Changed semantic of ``_fileio.FileIO``'s ``close()`` 
+- Issue #4233: Changed semantic of ``_fileio.FileIO``'s ``close()``
   method on file objects with closefd=False. The file descriptor is still
   kept open but the file object behaves like a closed file. The ``FileIO``
   object also got a new readonly attribute ``closefd``.
@@ -182,7 +185,7 @@ Library
 
 - Restore Python 2.3 compatibility for decimal.py.
 
-- Issue #1702551: distutils sdist was not excluding VCS directories under 
+- Issue #1702551: distutils sdist was not excluding VCS directories under
   Windows. Inital solution by Guy Dalberto.
 
 - Issue #4812: add missing underscore prefix to some internal-use-only
@@ -191,8 +194,8 @@ Library
 - Issue #4795: inspect.isgeneratorfunction() returns False instead of None when
   the function is not a generator.
 
-- Issue #4702: Throwing a DistutilsPlatformError instead of IOError in case 
-  no MSVC compiler is found under Windows. Original patch by Philip Jenvey. 
+- Issue #4702: Throwing a DistutilsPlatformError instead of IOError in case
+  no MSVC compiler is found under Windows. Original patch by Philip Jenvey.
 
   - Issue #4739: Add pydoc help topics for symbols, so that e.g. help('@')
   works as expected in the interactive environment.
@@ -200,7 +203,7 @@ Library
 - Issue #4756: zipfile.is_zipfile() now supports file-like objects. Patch by
   Gabriel Genellina.
 
-- Issue #4646: distutils was choking on empty options arg in the setup 
+- Issue #4646: distutils was choking on empty options arg in the setup
   function. Original patch by Thomas Heller.
 
 - Issue #4400: .pypirc default generated file was broken in distutils.