diff --git a/buzzrss/__pycache__/bot.cpython-314.pyc b/buzzrss/__pycache__/bot.cpython-314.pyc new file mode 100644 index 0000000..19c4c36 Binary files /dev/null and b/buzzrss/__pycache__/bot.cpython-314.pyc differ diff --git a/buzzrss/bot.py b/buzzrss/bot.py index 1a4d48e..8022205 100644 --- a/buzzrss/bot.py +++ b/buzzrss/bot.py @@ -128,18 +128,21 @@ class RSSBot(Plugin): self._setup_run_log() def _setup_run_log(self) -> None: - if self._run_logger: - for handler in list(self._run_logger.handlers): - self._run_logger.removeHandler(handler) - handler.close() - self._run_logger = None + # De logger zelf is gedeeld over reloads (zelfde log-naam). Bij een + # maubot-reload is self._run_logger op de nieuwe instance weer None, + # terwijl de oude handler aan de geregistreerde logger blijft hangen. + # Daarom ALTIJD op naam opruimen, niet op het instance-attribuut: + # anders wordt elke poll-run eenmalig per reload gelogd (NĂ— duplicaat). + self._run_logger = logging.getLogger(f"{self.log.name}.runlog") + for handler in list(self._run_logger.handlers): + self._run_logger.removeHandler(handler) + handler.close() self._run_handler = None run_log_file = self.config["run_log_file"] if "run_log_file" in self.config else "" if not run_log_file: return self._run_handler = logging.FileHandler(run_log_file, encoding="utf-8") self._run_handler.setFormatter(logging.Formatter("%(asctime)s %(message)s")) - self._run_logger = logging.getLogger(f"{self.log.name}.runlog") self._run_logger.setLevel(logging.INFO) self._run_logger.propagate = False self._run_logger.addHandler(self._run_handler) diff --git a/maubot.yaml b/maubot.yaml index a30c5b7..677eca2 100644 --- a/maubot.yaml +++ b/maubot.yaml @@ -1,5 +1,5 @@ id: nl.eddydevink.rss -version: 1.5.3 +version: 1.5.4 modules: - buzzrss main_class: RSSBot