]> granicus.if.org Git - python/commitdiff
Closes #24884: refactored WatchedFileHandler file reopening into a separate method...
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Thu, 1 Oct 2015 19:54:41 +0000 (20:54 +0100)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Thu, 1 Oct 2015 19:54:41 +0000 (20:54 +0100)
Doc/library/logging.handlers.rst
Lib/logging/handlers.py

index 67403a9bc6edc730fc6fb21fe7eb159c94008673..0d3928c352643ae5c6dce09dbc369db78c43d7d3 100644 (file)
@@ -162,11 +162,17 @@ for this value.
    first call to :meth:`emit`.  By default, the file grows indefinitely.
 
 
+   .. method:: reopenIfNeeded()
+
+      Checks to see if the file has changed.  If it has, the existing stream is
+      flushed and closed and the file opened again, typically as a precursor to
+      outputting the record to the file.
+
+
    .. method:: emit(record)
 
-      Outputs the record to the file, but first checks to see if the file has
-      changed.  If it has, the existing stream is flushed and closed and the
-      file opened again, before outputting the record to the file.
+      Outputs the record to the file, but first calls :meth:`reopenIfNeeded` to
+      reopen the file if it has changed.
 
 .. _base-rotating-handler:
 
index 02a5fc1283d1182db881ec19dc5100f4a4445a78..54bee893e182900e7322e865a1d95f1cfa7a0d9b 100644 (file)
@@ -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)