正文
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
.
baseFilename
+
"."
+
time
.
strftime
(
self
.
suffix
,
timeTuple
)
if
os.path
.
exists
(
dfn
)
:
os
.
remove
(
dfn
)
# Issue 18940: A file may not have been created if delay is True.
if
os.path
.
exists
(
self
.
baseFilename
)
:
os
.
rename
(
self
.
baseFilename
,
dfn
)
if
self
.
backupCount
>
0
:
for
s
in
self
.
getFilesToDelete
()
:
os
.
remove
(
s
)
if
not
self
.
delay
:
self
.
stream
=
self
.
_open
()
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
:
dstAtRollover
=
time
.
localtime
(
newRolloverAt
)[
-
1
]
if
dstNow
!=
dstAtRollover
:
if
not
dstNow
:
# DST kicks in before next rollover, so we need to deduct an hour