From a280aed288702c173cf31eb6871c0dbbc9b60f96 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Fri, 1 Oct 2021 10:06:31 +0200 Subject: [PATCH] Fixed encoding issue while parsing mail logs --- modoboa/maillog/management/commands/logparser.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modoboa/maillog/management/commands/logparser.py b/modoboa/maillog/management/commands/logparser.py index 87817fd2a..db9e9cc70 100644 --- a/modoboa/maillog/management/commands/logparser.py +++ b/modoboa/maillog/management/commands/logparser.py @@ -53,11 +53,6 @@ class LogParser: self.logfile = options["logfile"] self.debug = options["debug"] self.verbose = options["verbose"] - try: - self.f = io.open(self.logfile, encoding="utf-8") - except IOError as errno: - self._dprint("%s" % errno) - sys.exit(1) self.workdir = workdir self.__year = year self.cfs = ["AVERAGE", "MAX"] @@ -595,8 +590,13 @@ class LogParser: We parse it and then generate standard graphics (day, week, month). """ - for line in self.f.readlines(): - self._parse_line(line) + try: + with open(self.logfile, encoding="utf-8", errors="ignore") as fp: + for line in fp: + self._parse_line(line) + except IOError as errno: + self._dprint("%s" % errno) + sys.exit(1) for dom, data in self.data.items(): self._dprint("[rrd] dealing with domain %s" % dom)