v1.5.4: fix run-log handler-lek bij reload

_setup_run_log ruimde handlers alleen op via het instance-attribuut
self._run_logger; bij een maubot-reload is dat op de nieuwe instance weer
None, terwijl de geregistreerde logger (zelfde naam) de oude handler behield.
Elke reload voegde zo een handler toe, waardoor elke poll-run N× werd
gelogd. Fix: logger altijd op naam opruimen.
This commit is contained in:
Eddy de Vink 2026-09-08 14:47:48 +02:00
commit aa3965dcba
3 changed files with 10 additions and 7 deletions

Binary file not shown.

View file

@ -128,18 +128,21 @@ class RSSBot(Plugin):
self._setup_run_log() self._setup_run_log()
def _setup_run_log(self) -> None: def _setup_run_log(self) -> None:
if self._run_logger: # De logger zelf is gedeeld over reloads (zelfde log-naam). Bij een
for handler in list(self._run_logger.handlers): # maubot-reload is self._run_logger op de nieuwe instance weer None,
self._run_logger.removeHandler(handler) # terwijl de oude handler aan de geregistreerde logger blijft hangen.
handler.close() # Daarom ALTIJD op naam opruimen, niet op het instance-attribuut:
self._run_logger = None # 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 self._run_handler = None
run_log_file = self.config["run_log_file"] if "run_log_file" in self.config else "" run_log_file = self.config["run_log_file"] if "run_log_file" in self.config else ""
if not run_log_file: if not run_log_file:
return return
self._run_handler = logging.FileHandler(run_log_file, encoding="utf-8") self._run_handler = logging.FileHandler(run_log_file, encoding="utf-8")
self._run_handler.setFormatter(logging.Formatter("%(asctime)s %(message)s")) 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.setLevel(logging.INFO)
self._run_logger.propagate = False self._run_logger.propagate = False
self._run_logger.addHandler(self._run_handler) self._run_logger.addHandler(self._run_handler)

View file

@ -1,5 +1,5 @@
id: nl.eddydevink.rss id: nl.eddydevink.rss
version: 1.5.3 version: 1.5.4
modules: modules:
- buzzrss - buzzrss
main_class: RSSBot main_class: RSSBot