mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Issue 5013: Fixed bug in FileHandler when delay was set - added fix for RotatingFileHandler and changed header comment slightly.
This commit is contained in:
parent
b14043c1ec
commit
6268cbc771
3 changed files with 26 additions and 20 deletions
|
@ -18,7 +18,7 @@
|
|||
Logging package for Python. Based on PEP 282 and comments thereto in
|
||||
comp.lang.python, and influenced by Apache's log4j system.
|
||||
|
||||
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!
|
||||
"""
|
||||
|
@ -43,8 +43,8 @@ except ImportError:
|
|||
|
||||
__author__ = "Vinay Sajip <vinay_sajip@red-dove.com>"
|
||||
__status__ = "production"
|
||||
__version__ = "0.5.0.6"
|
||||
__date__ = "03 December 2008"
|
||||
__version__ = "0.5.0.7"
|
||||
__date__ = "20 January 2009"
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Miscellaneous module data
|
||||
|
@ -737,7 +737,6 @@ class StreamHandler(Handler):
|
|||
if strm is None:
|
||||
strm = sys.stderr
|
||||
self.stream = strm
|
||||
self.formatter = None
|
||||
|
||||
def flush(self):
|
||||
"""
|
||||
|
@ -792,10 +791,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):
|
||||
"""
|
||||
|
@ -827,8 +828,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)
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
|
|
@ -19,9 +19,9 @@ Additional handlers for the logging package for Python. The core package is
|
|||
based on PEP 282 and comments thereto in comp.lang.python, and influenced by
|
||||
Apache's log4j system.
|
||||
|
||||
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!
|
||||
To use, simply 'import logging.handlers' and log away!
|
||||
"""
|
||||
|
||||
import logging, socket, os, pickle, struct, time, re
|
||||
|
@ -112,8 +112,8 @@ class RotatingFileHandler(BaseRotatingHandler):
|
|||
"""
|
||||
Do a rollover, as described in __init__().
|
||||
"""
|
||||
|
||||
self.stream.close()
|
||||
if self.stream:
|
||||
self.stream.close()
|
||||
if self.backupCount > 0:
|
||||
for i in range(self.backupCount - 1, 0, -1):
|
||||
sfn = "%s.%d" % (self.baseFilename, i)
|
||||
|
@ -138,6 +138,8 @@ class RotatingFileHandler(BaseRotatingHandler):
|
|||
Basically, see if the supplied record would cause the file to exceed
|
||||
the size limit we have.
|
||||
"""
|
||||
if self.stream is None: # delay was set...
|
||||
self.stream = self._open()
|
||||
if self.maxBytes > 0: # are we rolling over?
|
||||
msg = "%s\n" % self.format(record)
|
||||
self.stream.seek(0, 2) #due to non-posix-compliant Windows feature
|
||||
|
@ -302,7 +304,8 @@ class TimedRotatingFileHandler(BaseRotatingHandler):
|
|||
then we have to get a list of matching filenames, sort them and remove
|
||||
the one with the oldest suffix.
|
||||
"""
|
||||
self.stream.close()
|
||||
if self.stream:
|
||||
self.stream.close()
|
||||
# get the time that this sequence started at and make it a TimeTuple
|
||||
t = self.rolloverAt - self.interval
|
||||
if self.utc:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue