mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Closes #14267: Merged fix from 3.2.
This commit is contained in:
commit
0f15181d39
1 changed files with 15 additions and 6 deletions
|
@ -305,9 +305,10 @@ class TimedRotatingFileHandler(BaseRotatingHandler):
|
|||
dstAtRollover = time.localtime(newRolloverAt)[-1]
|
||||
if dstNow != dstAtRollover:
|
||||
if not dstNow: # DST kicks in before next rollover, so we need to deduct an hour
|
||||
newRolloverAt = newRolloverAt - 3600
|
||||
addend = -3600
|
||||
else: # DST bows out before next rollover, so we need to add an hour
|
||||
newRolloverAt = newRolloverAt + 3600
|
||||
addend = 3600
|
||||
newRolloverAt += addend
|
||||
result = newRolloverAt
|
||||
return result
|
||||
|
||||
|
@ -358,11 +359,20 @@ class TimedRotatingFileHandler(BaseRotatingHandler):
|
|||
self.stream.close()
|
||||
self.stream = None
|
||||
# get the time that this sequence started at and make it a TimeTuple
|
||||
currentTime = int(time.time())
|
||||
dstNow = time.localtime(currentTime)[-1]
|
||||
t = self.rolloverAt - self.interval
|
||||
if self.utc:
|
||||
timeTuple = time.gmtime(t)
|
||||
else:
|
||||
timeTuple = time.localtime(t)
|
||||
dstThen = timeTuple[-1]
|
||||
if dstNow != dstThen:
|
||||
if dstNow:
|
||||
addend = 3600
|
||||
else:
|
||||
addend = -3600
|
||||
timeTuple = time.localtime(t + addend)
|
||||
dfn = self.rotation_filename(self.baseFilename + "." +
|
||||
time.strftime(self.suffix, timeTuple))
|
||||
if os.path.exists(dfn):
|
||||
|
@ -373,19 +383,18 @@ class TimedRotatingFileHandler(BaseRotatingHandler):
|
|||
os.remove(s)
|
||||
self.mode = 'w'
|
||||
self.stream = self._open()
|
||||
currentTime = int(time.time())
|
||||
newRolloverAt = self.computeRollover(currentTime)
|
||||
while newRolloverAt <= currentTime:
|
||||
newRolloverAt = newRolloverAt + self.interval
|
||||
#If DST changes and midnight or weekly rollover, adjust for this.
|
||||
if (self.when == 'MIDNIGHT' or self.when.startswith('W')) and not self.utc:
|
||||
dstNow = time.localtime(currentTime)[-1]
|
||||
dstAtRollover = time.localtime(newRolloverAt)[-1]
|
||||
if dstNow != dstAtRollover:
|
||||
if not dstNow: # DST kicks in before next rollover, so we need to deduct an hour
|
||||
newRolloverAt = newRolloverAt - 3600
|
||||
addend = -3600
|
||||
else: # DST bows out before next rollover, so we need to add an hour
|
||||
newRolloverAt = newRolloverAt + 3600
|
||||
addend = 3600
|
||||
newRolloverAt += addend
|
||||
self.rolloverAt = newRolloverAt
|
||||
|
||||
class WatchedFileHandler(logging.FileHandler):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue