diff --git a/src/log.py b/src/log.py index b1fb3702d..73df4d567 100644 --- a/src/log.py +++ b/src/log.py @@ -34,6 +34,7 @@ import time import types import atexit import logging +import logging.handlers import operator import textwrap import traceback @@ -125,12 +126,14 @@ class StdoutStreamHandler(logging.StreamHandler): logging._releaseLock() -class BetterFileHandler(logging.FileHandler): +class BetterFileHandler(logging.handlers.WatchedFileHandler): def emit(self, record): try: try: super().emit(record) except (UnicodeError, TypeError): + # the above line took care of calling reopenIfNeeded(), even + # if it raised one of these exceptions. msg = self.format(record) self.stream.write(repr(msg)) self.stream.write(os.linesep)