commit ff0f6c6cf5192f715fc5b2d4f36ac46385a6470a
parent 3375febd6f2ad05f5c6bebd2dc7e40bfdfe4a2e1
Author: Carlosokumu <carlosokumu254@gmail.com>
Date: Wed, 5 Nov 2025 21:35:32 +0300
fix: always include a console handler
Diffstat:
1 file changed, 17 insertions(+), 21 deletions(-)
diff --git a/ungana/logging/logging_manager.py b/ungana/logging/logging_manager.py
@@ -1,5 +1,5 @@
import logging
-from typing import Optional
+import sys
class LoggingManager:
def __init__(
@@ -7,32 +7,28 @@ class LoggingManager:
*,
verbose: bool = False,
quiet: bool = False,
- log_file: Optional[str] = None
):
- self._configure_logging(verbose, quiet, log_file)
+ self._configure_logging(verbose, quiet)
- def _configure_logging(
- self,
- verbose: bool,
- quiet: bool,
- log_file: Optional[str]
- ) -> None:
+ def _configure_logging(self, verbose: bool, quiet: bool) -> None:
level = logging.DEBUG if verbose else (
logging.CRITICAL if quiet else logging.INFO
)
-
- config = {
- "level": level,
- "format": "%(message)s" if not verbose else "%(levelname)s: %(message)s",
- "handlers": []
- }
-
- if log_file:
- config["handlers"].append(logging.FileHandler(log_file))
-
- logging.basicConfig(**config)
+
+ fmt = "%(message)s" if not verbose else "%(levelname)s: %(message)s"
+ handlers = []
+
+ console_handler = logging.StreamHandler(sys.stdout)
+ console_handler.setFormatter(logging.Formatter(fmt))
+ handlers.append(console_handler)
+
+ logging.basicConfig(level=level, handlers=handlers)
+ logging.captureWarnings(True)
+ logging.getLogger().setLevel(level)
+
@staticmethod
def get_logger(name: str) -> logging.Logger:
- """Shortcut to get a named logger."""
+ logger = logging.getLogger(name)
+ logger.propagate = True
return logging.getLogger(name)
\ No newline at end of file