From c47688227bfb7122dac57d03fbab0b1e536203b5 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Mon, 22 Mar 2021 12:59:15 +0000 Subject: [PATCH] dashboard: Detailed logging Dashboard.start() # Conflicts: # dashboard.py --- dashboard.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/dashboard.py b/dashboard.py index 123046dc..dc0dcd15 100644 --- a/dashboard.py +++ b/dashboard.py @@ -1,4 +1,5 @@ import json +import logging from calendar import timegm from os import getenv from os.path import isdir, isfile, join, getsize @@ -40,16 +41,21 @@ class Dashboard(FileSystemEventHandler): self.status = {} # Current status for communicating status back to main thread def start(self, root, started): + """Start monitoring of Journal directory.""" + logger.debug('Starting...') self.root = root self.session_start = started logdir = config.get('journaldir') or config.default_journal_dir if not logdir or not isdir(logdir): + logger.info(f"No logdir, or it isn't a directory: {logdir=}") self.stop() return False if self.currentdir and self.currentdir != logdir: + logger.debug(f"{self.currentdir=} != {logdir=}") self.stop() + self.currentdir = logdir # Set up a watchdog observer. @@ -58,25 +64,31 @@ class Dashboard(FileSystemEventHandler): # any non-standard logdir might be on a network drive and poll instead. polling = platform != 'win32' if not polling and not self.observer: + logger.debug('Setting up observer...') self.observer = Observer() self.observer.daemon = True self.observer.start() + logger.debug('Done') + elif polling and self.observer: + logger.debug('Using polling, stopping observer...') self.observer.stop() self.observer = None + logger.debug('Done') if not self.observed and not polling: + logger.debug('Starting observer...') self.observed = self.observer.schedule(self, self.currentdir) + logger.debug('Done') - if polling: - logger.debug(f'Polling Dashboard "{self.currentdir}"') - else: - logger.debug(f'Monitoring Dashboard "{self.currentdir}"') + logger.info(f'{polling and "Polling" or "Monitoring"} Dashboard "{self.currentdir}"') # Even if we're not intending to poll, poll at least once to process pre-existing # data and to check whether the watchdog thread has crashed due to events not # being supported on this filesystem. + logger.debug('Polling once to process pre-existing data, and check whether watchdog thread crashed...') self.root.after(int(self._POLL * 1000/2), self.poll, True) + logger.debug('Done.') return True