diff --git a/src/log.py b/src/log.py index b509823e9..2b0e4a7e9 100644 --- a/src/log.py +++ b/src/log.py @@ -127,16 +127,14 @@ class StdoutStreamHandler(logging.StreamHandler): class BetterFileHandler(logging.FileHandler): def emit(self, record): msg = self.format(record) - if not hasattr(types, "UnicodeType"): #if no unicode support... + try: self.stream.write(msg) - self.stream.write(os.linesep) - else: + except (UnicodeError, TypeError): try: - self.stream.write(msg) - self.stream.write(os.linesep) - except UnicodeError: self.stream.write(msg.encode("utf8")) - self.stream.write(os.linesep) + except (UnicodeError, TypeError): + self.stream.write(msg.encode("utf8").decode('ascii', 'replace')) + self.stream.write(os.linesep) try: self.flush() except OSError as e: