diff --git a/README.md b/README.md index 7a9be8e..82930e9 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,14 @@ python main.py Press **Esc** or close the window to quit. +### Debug logging + +Run the emulator with verbose debug logs: + +```bash +python main.py --debug +``` + ## UML Diagrams diff --git a/main.py b/main.py index 4e36f7b..6215e30 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,19 @@ +import argparse + from src.emulator.emulator import C64Emulator -from src.utils.log_setup import log +from src.utils.log_setup import setup_logging def main() -> None: + parser = argparse.ArgumentParser(description="Commodore 64 Emulator") + parser.add_argument( + "--debug", + action="store_true", + help="Enable debug mode with more detailed logs", + ) + args = parser.parse_args() + + log = setup_logging(debug=args.debug) emulator = C64Emulator() try: diff --git a/src/utils/log_setup.py b/src/utils/log_setup.py index 1d73751..0006fc9 100644 --- a/src/utils/log_setup.py +++ b/src/utils/log_setup.py @@ -1,25 +1,24 @@ -import argparse import logging +log: logging.Logger = logging.getLogger("C64Emulator") -def setup_logging() -> logging.Logger: - """ - Configures global logging for the Commodore 64 Emulator. - :return: Configured logger instance. +def setup_logging(*, debug: bool = False) -> logging.Logger: """ - parser: argparse.ArgumentParser = argparse.ArgumentParser( - description="Commodore 64 Emulator Logging Setup" - ) - parser.add_argument( - "--debug", - action="store_true", - help="Enables debug mode with more detailed logs", - ) - args, _ = parser.parse_known_args() + Configure global logging for the Commodore 64 Emulator. + + Parameters + ---------- + debug: bool + Enables debug mode with more detailed logs. - debug_enabled: bool = args.debug - level: int = logging.DEBUG if debug_enabled else logging.INFO + Returns + ------- + logging.Logger + Configured logger instance. + + """ + level: int = logging.DEBUG if debug else logging.INFO logging.basicConfig( level=level, @@ -27,10 +26,7 @@ def setup_logging() -> logging.Logger: datefmt="%Y-%m-%d %H:%M:%S", ) - logger: logging.Logger = logging.getLogger("C64Emulator") - logger.info("Logging configured") - - return logger - + log.setLevel(level) + log.info("Logging configured") -log: logging.Logger = setup_logging() + return log