diff --git a/ks_includes/functions.py b/ks_includes/functions.py index d0e906d2..6053b9ea 100644 --- a/ks_includes/functions.py +++ b/ks_includes/functions.py @@ -125,28 +125,29 @@ def patch_threading_excepthook(): # Rotating file handler based on Klipper and Moonraker's implementation class KlipperScreenLoggingHandler(logging.handlers.RotatingFileHandler): - def __init__(self, software_version, filename, **kwargs): + def __init__(self, filename, **kwargs): super(KlipperScreenLoggingHandler, self).__init__(filename, **kwargs) self.rollover_info = { 'header': f"{'-' * 20}KlipperScreen Log Start{'-' * 20}", - 'version': f"Git Version: {software_version}", + 'version': f"KlipperScreen Version: {get_software_version()}", + 'py_ver': f"Python version: {sys.version_info.major}.{sys.version_info.minor}", } - lines = [line for line in self.rollover_info.values() if line] - if self.stream is not None: - self.stream.write("\n".join(lines) + "\n") + self.log_start() def set_rollover_info(self, name, item): self.rollover_info[name] = item def doRollover(self): super(KlipperScreenLoggingHandler, self).doRollover() - lines = [line for line in self.rollover_info.values() if line] - if self.stream is not None: - self.stream.write("\n".join(lines) + "\n") + self.log_start() + + def log_start(self): + for line in self.rollover_info.values(): + logging.info(line) # Logging based on Arksine's logging setup -def setup_logging(log_file, software_version): +def setup_logging(log_file): root_logger = logging.getLogger() queue = Queue() queue_handler = logging.handlers.QueueHandler(queue) @@ -159,7 +160,7 @@ def setup_logging(log_file, software_version): stdout_hdlr.setFormatter(stdout_fmt) fh = listener = None try: - fh = KlipperScreenLoggingHandler(software_version, log_file, maxBytes=4194304, backupCount=1) + fh = KlipperScreenLoggingHandler(log_file, maxBytes=4194304, backupCount=1) formatter = logging.Formatter('%(asctime)s [%(filename)s:%(funcName)s()] - %(message)s') fh.setFormatter(formatter) listener = logging.handlers.QueueListener(queue, fh, stdout_hdlr) diff --git a/screen.py b/screen.py index f6cf535e..4e51eac9 100755 --- a/screen.py +++ b/screen.py @@ -94,7 +94,7 @@ class KlipperScreen(Gtk.Window): wayland = False windowed = False - def __init__(self, args, version): + def __init__(self, args): try: super().__init__(title="KlipperScreen") except Exception as e: @@ -103,7 +103,6 @@ class KlipperScreen(Gtk.Window): self.blanking_time = 600 self.use_dpms = True self.apiclient = None - self.version = version self.dialogs = [] self.confirm = None self.panels_reinit = [] @@ -372,7 +371,7 @@ class KlipperScreen(Gtk.Window): title.set_line_wrap_mode(Pango.WrapMode.CHAR) title.set_halign(Gtk.Align.START) title.set_hexpand(True) - version = Gtk.Label(label=f"{self.version}") + version = Gtk.Label(label=f"{functions.get_software_version()}") version.set_halign(Gtk.Align.END) help_msg = _("Provide KlipperScreen.log when asking for help.\n") @@ -1050,7 +1049,6 @@ def main(): logging.error(f"python {sys.version_info.major}.{sys.version_info.minor} " f"does not meet the minimum requirement {minimum[0]}.{minimum[1]}") sys.exit(1) - version = functions.get_software_version() parser = argparse.ArgumentParser(description="KlipperScreen - A GUI for Klipper") homedir = os.path.expanduser("~") @@ -1067,18 +1065,13 @@ def main(): ) args = parser.parse_args() - functions.setup_logging( - os.path.normpath(os.path.expanduser(args.logfile)), - version - ) + functions.setup_logging(os.path.normpath(os.path.expanduser(args.logfile))) functions.patch_threading_excepthook() - logging.info(f"Python version: {sys.version_info.major}.{sys.version_info.minor}") - logging.info(f"KlipperScreen version: {version}") if not Gtk.init_check(): logging.critical("Failed to initialize Gtk") raise RuntimeError try: - win = KlipperScreen(args, version) + win = KlipperScreen(args) except Exception as e: logging.exception(f"Failed to initialize window\n{e}\n\n{traceback.format_exc()}") raise RuntimeError from e