diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index 31352ad1c7d..82c418b368d 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -202,7 +202,11 @@ def __init__(self, filename, when='h', interval=1, backupCount=0, encoding=None, self.extMatch = re.compile(self.extMatch, re.ASCII) self.interval = self.interval * interval # multiply by units requested - self.rolloverAt = self.computeRollover(int(time.time())) + if os.path.exists(filename): + t = os.stat(filename)[ST_MTIME] + else: + t = int(time.time()) + self.rolloverAt = self.computeRollover(t) def computeRollover(self, currentTime): """ @@ -774,6 +778,9 @@ def emit(self, record): self.encodePriority(self.facility, self.mapPriority(record.levelname)), msg) + msg = msg.encode('utf-8') + if codecs: + msg = codecs.BOM_UTF8 + msg try: if self.unixsocket: try: