From 6aa7d2175dfde15685620ecfd39d54f485c7f98d Mon Sep 17 00:00:00 2001 From: Blake Harnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 28 Jan 2020 12:30:12 -0800 Subject: [PATCH] added file logging for coretk, using a time rotating logger, added command line arg to choose coretk log level --- daemon/core/gui/appconfig.py | 4 +--- daemon/scripts/coretk-gui | 12 ++++++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/daemon/core/gui/appconfig.py b/daemon/core/gui/appconfig.py index 61ace7c8..6d11414b 100644 --- a/daemon/core/gui/appconfig.py +++ b/daemon/core/gui/appconfig.py @@ -1,4 +1,3 @@ -import logging import os import shutil from pathlib import Path @@ -16,6 +15,7 @@ ICONS_PATH = HOME_PATH.joinpath("icons") MOBILITY_PATH = HOME_PATH.joinpath("mobility") XMLS_PATH = HOME_PATH.joinpath("xmls") CONFIG_PATH = HOME_PATH.joinpath("gui.yaml") +LOG_PATH = HOME_PATH.joinpath("gui.log") # local paths DATA_PATH = Path(__file__).parent.joinpath("data") @@ -52,9 +52,7 @@ def copy_files(current_path, new_path): def check_directory(): if HOME_PATH.exists(): - logging.info("~/.coretk exists") return - logging.info("creating ~/.coretk") HOME_PATH.mkdir() BACKGROUNDS_PATH.mkdir() CUSTOM_EMANE_PATH.mkdir() diff --git a/daemon/scripts/coretk-gui b/daemon/scripts/coretk-gui index 4fc60d51..9723297b 100755 --- a/daemon/scripts/coretk-gui +++ b/daemon/scripts/coretk-gui @@ -1,6 +1,7 @@ #!/usr/bin/env python import argparse import logging +from logging.handlers import TimedRotatingFileHandler from core.gui import appconfig from core.gui.app import Application @@ -9,16 +10,23 @@ from core.gui.images import Images if __name__ == "__main__": # parse flags parser = argparse.ArgumentParser(description=f"CORE Python Tk GUI") + parser.add_argument("-l", "--level", choices=["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"], default="INFO", + help="logging level") parser.add_argument("-p", "--proxy", action="store_true", help="enable proxy") args = parser.parse_args() + # check home directory exists and create if necessary + appconfig.check_directory() + # setup logging log_format = "%(asctime)s - %(levelname)s - %(module)s:%(funcName)s - %(message)s" - logging.basicConfig(level=logging.DEBUG, format=log_format) + stream_handler = logging.StreamHandler() + file_handler = TimedRotatingFileHandler(filename=appconfig.LOG_PATH, when="D", backupCount=5) + log_level = logging.getLevelName(args.level) + logging.basicConfig(level=log_level, format=log_format, handlers=[stream_handler, file_handler]) logging.getLogger("PIL").setLevel(logging.ERROR) # start app Images.load_all() - appconfig.check_directory() app = Application(args.proxy) app.mainloop()