From: Vinay Sajip Date: Tue, 9 Jan 2007 14:50:28 +0000 (+0000) Subject: Bug #1627575: Added _open() method to FileHandler which can be used to reopen files... X-Git-Tag: v2.6a1~2303 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=825b75a053e77c886b799c59653d4cbbb34803d0;p=python Bug #1627575: Added _open() method to FileHandler which can be used to reopen files. The FileHandler instance now saves the encoding (which can be None) in an attribute called "encoding". --- diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index 797fac6eed..d17809153f 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -41,8 +41,8 @@ except ImportError: __author__ = "Vinay Sajip " __status__ = "production" -__version__ = "0.5.0.0" -__date__ = "08 January 2007" +__version__ = "0.5.0.1" +__date__ = "09 January 2007" #--------------------------------------------------------------------------- # Miscellaneous module data @@ -764,17 +764,15 @@ class FileHandler(StreamHandler): """ Open the specified file and use it as the stream for logging. """ - if codecs is None: - encoding = None - if encoding is None: - stream = open(filename, mode) - else: - stream = codecs.open(filename, mode, encoding) - StreamHandler.__init__(self, stream) #keep the absolute path, otherwise derived classes which use this #may come a cropper when the current directory changes + if codecs is None: + encoding = None self.baseFilename = os.path.abspath(filename) self.mode = mode + self.encoding = encoding + stream = self._open() + StreamHandler.__init__(self, stream) def close(self): """ @@ -784,6 +782,13 @@ class FileHandler(StreamHandler): self.stream.close() StreamHandler.close(self) + def _open(self): + if self.encoding is None: + stream = open(self.baseFilename, self.mode) + else: + stream = codecs.open(self.baseFilename, self.mode, self.encoding) + return stream + #--------------------------------------------------------------------------- # Manager classes and functions #---------------------------------------------------------------------------