summaryrefslogtreecommitdiff
path: root/Lib/logging/handlers.py
diff options
context:
space:
mode:
authorZachary Ware <zachary.ware@gmail.com>2015-12-21 14:17:12 -0600
committerZachary Ware <zachary.ware@gmail.com>2015-12-21 14:17:12 -0600
commitf2b234443c53cb73dc749da57d952286437cb15a (patch)
treef21b8b25f5bfbe76a2c85ae62f6d06060dd03372 /Lib/logging/handlers.py
parent26b842a82d9ae7d30c692080bf352a0ef78a626c (diff)
parent977fd6d7c6593680fd5ffdebb262a2a3f2f24387 (diff)
downloadcpython-f2b234443c53cb73dc749da57d952286437cb15a.tar.gz
Issue #25827: Merge with 3.5
Diffstat (limited to 'Lib/logging/handlers.py')
-rw-r--r--Lib/logging/handlers.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
index b810fa9c58..fba04f1229 100644
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -440,11 +440,11 @@ class WatchedFileHandler(logging.FileHandler):
sres = os.fstat(self.stream.fileno())
self.dev, self.ino = sres[ST_DEV], sres[ST_INO]
- def emit(self, record):
+ def reopenIfNeeded(self):
"""
- Emit a record.
+ Reopen log file if needed.
- First check if the underlying file has changed, and if it
+ Checks if the underlying file has changed, and if it
has, close the old stream and reopen the file to get the
current stream.
"""
@@ -467,6 +467,15 @@ class WatchedFileHandler(logging.FileHandler):
# open a new file handle and get new stat info from that fd
self.stream = self._open()
self._statstream()
+
+ def emit(self, record):
+ """
+ Emit a record.
+
+ If underlying file has changed, reopen the file before emitting the
+ record to it.
+ """
+ self.reopenIfNeeded()
logging.FileHandler.emit(self, record)