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:
parent
cb6d00e707
commit
aa3965dcba
3 changed files with 10 additions and 7 deletions
BIN
buzzrss/__pycache__/bot.cpython-314.pyc
Normal file
BIN
buzzrss/__pycache__/bot.cpython-314.pyc
Normal file
Binary file not shown.
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue