From 5304791252fa0fbb9b2c7e596323c98ff5403671 Mon Sep 17 00:00:00 2001 From: bbtufty Date: Tue, 27 Aug 2024 16:01:40 +0100 Subject: [PATCH] Improved GameFinder logging * Improved GameFinder logging * Allowed for specifying log level in config file * Add logger level as GUI option * Tidied platforms up in docs --- CHANGES.rst | 6 ++ README.md | 14 +-- docs/configs/config.rst | 4 + docs/intro.rst | 17 ++-- romsearch/configs/sample_config.yml | 3 + romsearch/gui/gui_config.py | 49 +++++++++- romsearch/gui/gui_romsearch.py | 7 +- romsearch/gui/layout_romsearch.py | 82 +++++++++++++++- romsearch/gui/layout_romsearch.ui | 142 +++++++++++++++++++++++++++- romsearch/modules/datparser.py | 3 +- romsearch/modules/dupeparser.py | 3 +- romsearch/modules/gamefinder.py | 46 +++++++-- romsearch/modules/romchooser.py | 3 +- romsearch/modules/romdownloader.py | 3 +- romsearch/modules/rommover.py | 3 +- romsearch/modules/romparser.py | 3 +- romsearch/modules/romsearch.py | 4 +- 17 files changed, 354 insertions(+), 38 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 90f3533..2a7fd11 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -22,6 +22,11 @@ DupeParser - Logging tidied up to make more readable +GameFinder +~~~~~~~~~~ + +- Logging tidied up to make more readable + ROMChooser ~~~~~~~~~~ @@ -56,6 +61,7 @@ General ~~~~~~~ - Due to changes to the re module, ROMSearch requires python>=3.11 +- Allowed specifying log level in the config file 0.0.6 (2024-05-23) ================== diff --git a/README.md b/README.md index 32ce3e0..96f212b 100644 --- a/README.md +++ b/README.md @@ -25,12 +25,14 @@ To get started, see the [documentation](https://romsearch.readthedocs.io/en/late Currently, ROMSearch is in early development, and so many features may be added over time. At the moment, ROMSearch works for the following consoles: -* Nintendo - GameCube -* Nintendo - Nintendo Entertainment System -* Nintendo - Super Nintendo Entertainment System -* Sony - PlayStation -* Sony - PlayStation 2 -* Sony - PlayStation Portable +* Nintendo + * Nintendo Entertainment System + * Super Nintendo Entertainment System + * GameCube +* Sony + * PlayStation + * PlayStation 2 + * PlayStation Portable but be aware there may be quirks that will only become apparent over time. We encourage users to open [issues](https://github.com/bbtufty/romsearch/issues) as and where they find them. \ No newline at end of file diff --git a/docs/configs/config.rst b/docs/configs/config.rst index a51717d..10a7263 100644 --- a/docs/configs/config.rst +++ b/docs/configs/config.rst @@ -78,6 +78,10 @@ Syntax: :: discord: # OPTIONAL. If defined, supply a webhook URL so that ROMSearch can post Discord webhook_url: [webhook_url] # notifications + logger: + level: info # OPTIONAL. If defined, can set the log level to be printed to terminal and + # logs + Sample ====== diff --git a/docs/intro.rst b/docs/intro.rst index 4d220f5..1923304 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -36,12 +36,17 @@ everything and then filter from the downloaded files. For more details, see the Currently, ROMSearch is in early development, and so many features may be added over time. At the moment, ROMSearch has the capability for: -* Nintendo - GameCube -* Nintendo - Nintendo Entertainment System -* Nintendo - Super Nintendo Entertainment System -* Sony - PlayStation -* Sony - PlayStation 2 -* Sony - PlayStation Portable +* Nintendo + + * GameCube + * Nintendo - Nintendo Entertainment System + * Nintendo - Super Nintendo Entertainment System + +* Sony + + * PlayStation + * PlayStation 2 + * PlayStation Portable but be aware there may be quirks that will only become apparent over time. We encourage users to open `issues `_ as and where they find them. Known issues can be found at diff --git a/romsearch/configs/sample_config.yml b/romsearch/configs/sample_config.yml index 7b91595..775877a 100644 --- a/romsearch/configs/sample_config.yml +++ b/romsearch/configs/sample_config.yml @@ -55,3 +55,6 @@ romchooser: discord: webhook_url: "https://discord.com/api/webhooks/discord_url" + +logger: + level: debug diff --git a/romsearch/gui/gui_config.py b/romsearch/gui/gui_config.py index 3915f96..625feed 100644 --- a/romsearch/gui/gui_config.py +++ b/romsearch/gui/gui_config.py @@ -1,6 +1,4 @@ import os -from functools import partial - from PySide6.QtCore import Qt from PySide6.QtGui import QFont from PySide6.QtWidgets import (QMainWindow, @@ -13,6 +11,7 @@ QFrame, QPlainTextEdit, ) +from functools import partial import romsearch from romsearch.util import load_yml, save_yml, load_json, save_json @@ -94,12 +93,13 @@ def __init__(self, super().__init__() + self.ui = main_ui + if logger is None: - logger = get_gui_logger() + log_level = self.ui.radioButtonConfigLoggerLevel.checkedButton().text().lower() + logger = get_gui_logger(log_level=log_level) self.logger = logger - self.ui = main_ui - # Read in the various pre-set configs we've got self.mod_dir = os.path.dirname(romsearch.__file__) @@ -354,6 +354,7 @@ def load_config(self, self.set_checkboxes() self.set_text_fields() self.set_romsearch_method() + self.set_logger_level() self.set_includes_excludes() def set_directory_name(self, @@ -524,6 +525,29 @@ def set_romsearch_method(self): return True + def set_logger_level(self): + """Set the logger level from the config file""" + + if "logger" not in self.config: + return False + + if "level" in self.config["logger"]: + + level = self.config["logger"]["level"] + + if level == "debug": + button = self.ui.radioButtonConfigLoggerLevelDebug + elif level == "info": + button = self.ui.radioButtonConfigLoggerLevelInfo + elif level == "critical": + button = self.ui.radioButtonConfigLoggerLevelCritical + else: + raise ValueError(f"Do not understand logger level {level}") + + button.setChecked(True) + + return True + def set_includes_excludes(self): """Set any includes/excludes config file""" @@ -606,6 +630,9 @@ def save_config(self): # Dat filters we do a bit differently self.get_dat_filters() + # Finally, the logger level + self.get_logger_level() + # Save out the config file save_yml(filename, self.config) @@ -787,3 +814,15 @@ def get_dat_filters(self): self.config["romchooser"]["dat_filters"] = dat_filters return True + + def get_logger_level(self): + """Get the logger level from the button config""" + + if "logger" not in self.config: + self.config["logger"] = {} + + # Get the method from the radio button group + logger_level = self.ui.radioButtonConfigLoggerLevel.checkedButton().text().lower() + self.config["logger"]["level"] = logger_level + + return True diff --git a/romsearch/gui/gui_romsearch.py b/romsearch/gui/gui_romsearch.py index 04e3057..abbe2f9 100644 --- a/romsearch/gui/gui_romsearch.py +++ b/romsearch/gui/gui_romsearch.py @@ -24,12 +24,13 @@ def __init__(self): super().__init__() - self.logger = get_gui_logger() - self.logger.warning("Do not close this window!") - self.ui = Ui_RomSearch() self.ui.setupUi(self) + log_level = self.ui.radioButtonConfigLoggerLevel.checkedButton().text().lower() + self.logger = get_gui_logger(log_level=log_level) + self.logger.warning("Do not close this window!") + # Set up the worker threads for later self.romsearch_thread = None self.romsearch_worker = None diff --git a/romsearch/gui/layout_romsearch.py b/romsearch/gui/layout_romsearch.py index 6476e93..d436128 100644 --- a/romsearch/gui/layout_romsearch.py +++ b/romsearch/gui/layout_romsearch.py @@ -27,7 +27,7 @@ class Ui_RomSearch(object): def setupUi(self, RomSearch): if not RomSearch.objectName(): RomSearch.setObjectName(u"RomSearch") - RomSearch.resize(950, 785) + RomSearch.resize(1036, 798) sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) @@ -1182,6 +1182,79 @@ def setupUi(self, RomSearch): self.horizontalLayout_8.addLayout(self.gridLayoutConfigDiscord) self.tabWidgetConfig.addTab(self.tabConfigDiscord, "") + self.tabConfigLogger = QWidget() + self.tabConfigLogger.setObjectName(u"tabConfigLogger") + self.gridLayout_2 = QGridLayout(self.tabConfigLogger) + self.gridLayout_2.setObjectName(u"gridLayout_2") + self.gridLayoutConfigLogger = QGridLayout() + self.gridLayoutConfigLogger.setObjectName(u"gridLayoutConfigLogger") + self.gridLayoutConfigLoggerLeft = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayoutConfigLogger.addItem(self.gridLayoutConfigLoggerLeft, 0, 1, 1, 1) + + self.gridLayoutConfigLoggerMiddle = QGridLayout() + self.gridLayoutConfigLoggerMiddle.setObjectName(u"gridLayoutConfigLoggerMiddle") + self.labelConfigLoggerLevelTitle = QLabel(self.tabConfigLogger) + self.labelConfigLoggerLevelTitle.setObjectName(u"labelConfigLoggerLevelTitle") + self.labelConfigLoggerLevelTitle.setFont(font) + self.labelConfigLoggerLevelTitle.setAlignment(Qt.AlignmentFlag.AlignCenter) + + self.gridLayoutConfigLoggerMiddle.addWidget(self.labelConfigLoggerLevelTitle, 2, 0, 1, 1) + + self.lineConfigLoggerLevelDividerTop = QFrame(self.tabConfigLogger) + self.lineConfigLoggerLevelDividerTop.setObjectName(u"lineConfigLoggerLevelDividerTop") + self.lineConfigLoggerLevelDividerTop.setFrameShadow(QFrame.Shadow.Plain) + self.lineConfigLoggerLevelDividerTop.setFrameShape(QFrame.Shape.HLine) + + self.gridLayoutConfigLoggerMiddle.addWidget(self.lineConfigLoggerLevelDividerTop, 1, 0, 1, 1) + + self.lineConfigLoggerLevelDividerBottom = QFrame(self.tabConfigLogger) + self.lineConfigLoggerLevelDividerBottom.setObjectName(u"lineConfigLoggerLevelDividerBottom") + self.lineConfigLoggerLevelDividerBottom.setFrameShadow(QFrame.Shadow.Plain) + self.lineConfigLoggerLevelDividerBottom.setFrameShape(QFrame.Shape.HLine) + + self.gridLayoutConfigLoggerMiddle.addWidget(self.lineConfigLoggerLevelDividerBottom, 6, 0, 1, 1) + + self.radioButtonConfigLoggerLevelInfo = QRadioButton(self.tabConfigLogger) + self.radioButtonConfigLoggerLevel = QButtonGroup(RomSearch) + self.radioButtonConfigLoggerLevel.setObjectName(u"radioButtonConfigLoggerLevel") + self.radioButtonConfigLoggerLevel.addButton(self.radioButtonConfigLoggerLevelInfo) + self.radioButtonConfigLoggerLevelInfo.setObjectName(u"radioButtonConfigLoggerLevelInfo") + self.radioButtonConfigLoggerLevelInfo.setChecked(True) + + self.gridLayoutConfigLoggerMiddle.addWidget(self.radioButtonConfigLoggerLevelInfo, 4, 0, 1, 1) + + self.verticalSpacerConfigLoggerBottom = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.gridLayoutConfigLoggerMiddle.addItem(self.verticalSpacerConfigLoggerBottom, 7, 0, 1, 1) + + self.verticalSpacerConfigLoggerTop = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.gridLayoutConfigLoggerMiddle.addItem(self.verticalSpacerConfigLoggerTop, 0, 0, 1, 1) + + self.radioButtonConfigLoggerLevelDebug = QRadioButton(self.tabConfigLogger) + self.radioButtonConfigLoggerLevel.addButton(self.radioButtonConfigLoggerLevelDebug) + self.radioButtonConfigLoggerLevelDebug.setObjectName(u"radioButtonConfigLoggerLevelDebug") + + self.gridLayoutConfigLoggerMiddle.addWidget(self.radioButtonConfigLoggerLevelDebug, 3, 0, 1, 1) + + self.radioButtonConfigLoggerLevelCritical = QRadioButton(self.tabConfigLogger) + self.radioButtonConfigLoggerLevel.addButton(self.radioButtonConfigLoggerLevelCritical) + self.radioButtonConfigLoggerLevelCritical.setObjectName(u"radioButtonConfigLoggerLevelCritical") + + self.gridLayoutConfigLoggerMiddle.addWidget(self.radioButtonConfigLoggerLevelCritical, 5, 0, 1, 1) + + + self.gridLayoutConfigLogger.addLayout(self.gridLayoutConfigLoggerMiddle, 0, 2, 1, 1) + + self.gridLayoutConfigLoggerRight = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum) + + self.gridLayoutConfigLogger.addItem(self.gridLayoutConfigLoggerRight, 0, 3, 1, 1) + + + self.gridLayout_2.addLayout(self.gridLayoutConfigLogger, 0, 0, 1, 1) + + self.tabWidgetConfig.addTab(self.tabConfigLogger, "") self.verticalLayout_2.addWidget(self.tabWidgetConfig) @@ -1218,7 +1291,7 @@ def setupUi(self, RomSearch): RomSearch.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(RomSearch) self.menubar.setObjectName(u"menubar") - self.menubar.setGeometry(QRect(0, 0, 950, 33)) + self.menubar.setGeometry(QRect(0, 0, 1036, 33)) self.menuFile = QMenu(self.menubar) self.menuFile.setObjectName(u"menuFile") self.menuHelp = QMenu(self.menubar) @@ -1501,6 +1574,11 @@ def retranslateUi(self, RomSearch): self.lineEditConfigDiscordWebhookUrl.setText("") self.lineEditConfigDiscordWebhookUrl.setPlaceholderText(QCoreApplication.translate("RomSearch", u"https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", None)) self.tabWidgetConfig.setTabText(self.tabWidgetConfig.indexOf(self.tabConfigDiscord), QCoreApplication.translate("RomSearch", u"Discord", None)) + self.labelConfigLoggerLevelTitle.setText(QCoreApplication.translate("RomSearch", u"Log level", None)) + self.radioButtonConfigLoggerLevelInfo.setText(QCoreApplication.translate("RomSearch", u"Info", None)) + self.radioButtonConfigLoggerLevelDebug.setText(QCoreApplication.translate("RomSearch", u"Debug", None)) + self.radioButtonConfigLoggerLevelCritical.setText(QCoreApplication.translate("RomSearch", u"Critical", None)) + self.tabWidgetConfig.setTabText(self.tabWidgetConfig.indexOf(self.tabConfigLogger), QCoreApplication.translate("RomSearch", u"Logger", None)) self.tabWidgetModules.setTabText(self.tabWidgetModules.indexOf(self.tabConfig), QCoreApplication.translate("RomSearch", u"Config", None)) #if QT_CONFIG(statustip) self.pushButtonExit.setStatusTip(QCoreApplication.translate("RomSearch", u"Exit ROMSearch", None)) diff --git a/romsearch/gui/layout_romsearch.ui b/romsearch/gui/layout_romsearch.ui index bac0c3c..651d5d0 100644 --- a/romsearch/gui/layout_romsearch.ui +++ b/romsearch/gui/layout_romsearch.ui @@ -6,8 +6,8 @@ 0 0 - 950 - 785 + 1036 + 798 @@ -2042,6 +2042,141 @@ + + + Logger + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + + + true + + + + Log level + + + Qt::AlignmentFlag::AlignCenter + + + + + + + QFrame::Shadow::Plain + + + Qt::Orientation::Horizontal + + + + + + + QFrame::Shadow::Plain + + + Qt::Orientation::Horizontal + + + + + + + Info + + + true + + + radioButtonConfigLoggerLevel + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + Debug + + + radioButtonConfigLoggerLevel + + + + + + + Critical + + + radioButtonConfigLoggerLevel + + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + @@ -2108,7 +2243,7 @@ 0 0 - 950 + 1036 33 @@ -2201,5 +2336,6 @@ + diff --git a/romsearch/modules/datparser.py b/romsearch/modules/datparser.py index 093681b..09f7682 100644 --- a/romsearch/modules/datparser.py +++ b/romsearch/modules/datparser.py @@ -74,7 +74,8 @@ def __init__(self, if logger is None: log_dir = self.config.get("dirs", {}).get("log_dir", os.path.join(os.getcwd(), "logs")) - logger = setup_logger(log_level="info", + log_level = self.config.get("logger", {}).get("level", "info") + logger = setup_logger(log_level=log_level, script_name=f"DATParser", log_dir=log_dir, additional_dir=platform, diff --git a/romsearch/modules/dupeparser.py b/romsearch/modules/dupeparser.py index b1b02f7..eba7016 100644 --- a/romsearch/modules/dupeparser.py +++ b/romsearch/modules/dupeparser.py @@ -59,7 +59,8 @@ def __init__(self, if logger is None: log_dir = self.config.get("dirs", {}).get("log_dir", os.path.join(os.getcwd(), "logs")) - logger = setup_logger(log_level="info", + log_level = self.config.get("logger", {}).get("level", "info") + logger = setup_logger(log_level=log_level, script_name=f"DupeParser", log_dir=log_dir, additional_dir=platform, diff --git a/romsearch/modules/gamefinder.py b/romsearch/modules/gamefinder.py index c75f50f..7f0dd83 100644 --- a/romsearch/modules/gamefinder.py +++ b/romsearch/modules/gamefinder.py @@ -5,7 +5,9 @@ import numpy as np import romsearch -from ..util import (setup_logger, +from ..util import (centred_string, + left_aligned_string, + setup_logger, load_yml, get_parent_name, get_short_name, @@ -55,6 +57,8 @@ def __init__(self, default_config=None, regex_config=None, logger=None, + log_line_sep="=", + log_line_length=100, ): """Tool to find games within a list of files @@ -68,6 +72,7 @@ def __init__(self, default_config (dict, optional): Default configuration dictionary. Defaults to None. regex_config (dict, optional): Dictionary of regex config. Defaults to None. logger (logging.Logger, optional): Logger instance. Defaults to None. + log_line_length (int, optional): Line length of log. Defaults to 100 """ if platform is None: @@ -83,7 +88,8 @@ def __init__(self, if logger is None: log_dir = self.config.get("dirs", {}).get("log_dir", os.path.join(os.getcwd(), "logs")) - logger = setup_logger(log_level="info", + log_level = self.config.get("logger", {}).get("level", "info") + logger = setup_logger(log_level=log_level, script_name=f"GameFinder", log_dir=log_dir, additional_dir=platform, @@ -111,16 +117,40 @@ def __init__(self, self.dupe_dir = config.get("dirs", {}).get("dupe_dir", None) self.filter_dupes = config.get("gamefinder", {}).get("filter_dupes", True) + self.log_line_sep = log_line_sep + self.log_line_length = log_line_length + def run(self, files, ): + self.logger.debug(f"{self.log_line_sep * self.log_line_length}") + self.logger.debug(centred_string("Running GameFinder", + total_length=self.log_line_length) + ) + self.logger.debug(f"{self.log_line_sep * self.log_line_length}") + games_dict = self.get_game_dict(files) games_dict = dict(sorted(games_dict.items())) - self.logger.debug(f"Found {len(games_dict)} games:") - for g in games_dict: - self.logger.debug(f"{g}: {games_dict[g]}") + self.logger.debug(centred_string(f"Found {len(games_dict)} games", + total_length=self.log_line_length) + ) + self.logger.debug(f"{'-' * self.log_line_length}") + for gi, g in enumerate(games_dict): + self.logger.debug(left_aligned_string(f"{g}:", + total_length=self.log_line_length) + ) + + for ga in games_dict[g]: + self.logger.debug(left_aligned_string(f"-> Priority {games_dict[g][ga]['priority']}. {ga}", + total_length=self.log_line_length) + ) + + if gi != len(games_dict) - 1: + self.logger.debug(f"{'-' * self.log_line_length}") + + self.logger.debug(f"{self.log_line_sep * self.log_line_length}") return games_dict @@ -239,7 +269,11 @@ def get_filter_dupes(self, games): dupe_file = os.path.join(self.dupe_dir, f"{self.platform} (dupes).json") if not os.path.exists(dupe_file): - self.logger.warning("No dupe files found") + self.logger.warning(f"{self.log_line_sep * self.log_line_length}") + self.logger.warning(centred_string("No dupe files found", + total_length=self.log_line_length) + ) + self.logger.warning(f"{self.log_line_sep * self.log_line_length}") return None game_dict = {} diff --git a/romsearch/modules/romchooser.py b/romsearch/modules/romchooser.py index 6ed0397..6e0421d 100644 --- a/romsearch/modules/romchooser.py +++ b/romsearch/modules/romchooser.py @@ -319,7 +319,8 @@ def __init__(self, if logger is None: log_dir = self.config.get("dirs", {}).get("log_dir", os.path.join(os.getcwd(), "logs")) logger_add_dir = str(os.path.join(platform, game)) - logger = setup_logger(log_level="info", + log_level = self.config.get("logger", {}).get("level", "info") + logger = setup_logger(log_level=log_level, script_name=f"ROMChooser", log_dir=log_dir, additional_dir=logger_add_dir, diff --git a/romsearch/modules/romdownloader.py b/romsearch/modules/romdownloader.py index 436dd8b..5292222 100644 --- a/romsearch/modules/romdownloader.py +++ b/romsearch/modules/romdownloader.py @@ -107,7 +107,8 @@ def __init__(self, if logger is None: log_dir = self.config.get("dirs", {}).get("log_dir", os.path.join(os.getcwd(), "logs")) - logger = setup_logger(log_level="info", + log_level = self.config.get("logger", {}).get("level", "info") + logger = setup_logger(log_level=log_level, script_name=f"ROMDownloader", log_dir=log_dir, additional_dir=platform, diff --git a/romsearch/modules/rommover.py b/romsearch/modules/rommover.py index 85b7439..d4eeb30 100644 --- a/romsearch/modules/rommover.py +++ b/romsearch/modules/rommover.py @@ -48,7 +48,8 @@ def __init__(self, if logger is None: log_dir = self.config.get("dirs", {}).get("log_dir", os.path.join(os.getcwd(), "logs")) logger_add_dir = str(os.path.join(platform, game)) - logger = setup_logger(log_level="info", + log_level = self.config.get("logger", {}).get("level", "info") + logger = setup_logger(log_level=log_level, script_name=f"ROMMover", log_dir=log_dir, additional_dir=logger_add_dir, diff --git a/romsearch/modules/romparser.py b/romsearch/modules/romparser.py index 752d5df..4db0658 100644 --- a/romsearch/modules/romparser.py +++ b/romsearch/modules/romparser.py @@ -109,7 +109,8 @@ def __init__(self, if logger is None: log_dir = self.config.get("dirs", {}).get("log_dir", os.path.join(os.getcwd(), "logs")) logger_add_dir = str(os.path.join(platform, game)) - logger = setup_logger(log_level="info", + log_level = self.config.get("logger", {}).get("level", "info") + logger = setup_logger(log_level=log_level, script_name=f"ROMParser", log_dir=log_dir, additional_dir=logger_add_dir, diff --git a/romsearch/modules/romsearch.py b/romsearch/modules/romsearch.py index 9c64e2e..76d8e01 100644 --- a/romsearch/modules/romsearch.py +++ b/romsearch/modules/romsearch.py @@ -62,7 +62,8 @@ def __init__(self, if logger is None: log_dir = self.config.get("dirs", {}).get("log_dir", os.path.join(os.getcwd(), "logs")) - logger = setup_logger(log_level="info", + log_level = self.config.get("logger", {}).get("level", "info") + logger = setup_logger(log_level=log_level, script_name="ROMSearch", log_dir=log_dir, ) @@ -220,6 +221,7 @@ def run(self, default_config=self.default_config, regex_config=self.regex_config, logger=self.logger, + log_line_length=log_line_length, ) all_games = finder.run(files=all_file_dict)