From ae3661b1007796ce097c9dedfb25b1af75997ec1 Mon Sep 17 00:00:00 2001 From: Arksine <arksine.code@gmail.com> Date: Sat, 2 Jan 2021 06:45:04 -0500 Subject: [PATCH] app: Force register moonraker and klippy log endpoints It is possible for the log files to be registered after a rollover, which can result in the file not existing. Force the log endpoints to register, bypassing the existance check. Signed-off-by: Eric Callahan <arksine.code@gmail.com> --- moonraker/app.py | 9 +++++---- moonraker/plugins/file_manager.py | 6 ++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/moonraker/app.py b/moonraker/app.py index 6e68444..9040ee8 100644 --- a/moonraker/app.py +++ b/moonraker/app.py @@ -132,9 +132,10 @@ class MoonrakerApp: # Register handlers logfile = config['system_args'].get('logfile') if logfile: - self.register_static_file_handler("moonraker.log", logfile) + self.register_static_file_handler( + "moonraker.log", logfile, force=True) self.register_static_file_handler( - "klippy.log", DEFAULT_KLIPPY_LOG_PATH) + "klippy.log", DEFAULT_KLIPPY_LOG_PATH, force=True) self.auth.register_handlers(self) def listen(self, host, port): @@ -197,10 +198,10 @@ class MoonrakerApp: self.wsm.register_local_handler(api_def, callback) logging.info(msg) - def register_static_file_handler(self, pattern, file_path): + def register_static_file_handler(self, pattern, file_path, force=False): if pattern[0] != "/": pattern = "/server/files/" + pattern - if os.path.isfile(file_path): + if os.path.isfile(file_path) or force: pattern += '()' elif os.path.isdir(file_path): if pattern[-1] != "/": diff --git a/moonraker/plugins/file_manager.py b/moonraker/plugins/file_manager.py index 4687f0b..955af60 100644 --- a/moonraker/plugins/file_manager.py +++ b/moonraker/plugins/file_manager.py @@ -77,8 +77,10 @@ class FileManager: # Register log path log_file = paths.get('log_file') - log_path = os.path.normpath(os.path.expanduser(log_file)) - self.server.register_static_file_handler("klippy.log", log_path) + if log_file is not None: + log_path = os.path.normpath(os.path.expanduser(log_file)) + self.server.register_static_file_handler( + "klippy.log", log_path, force=True) def register_directory(self, root, path): if path is None: