diff --git a/scrapegraphai/utils/logging.py b/scrapegraphai/utils/logging.py index 428fb8a7..b4a677dd 100644 --- a/scrapegraphai/utils/logging.py +++ b/scrapegraphai/utils/logging.py @@ -1,7 +1,8 @@ """A centralized logging system for any library -source code inspired by https://github.com/huggingface/transformers/blob/main/src/transformers/utils/logging.py +source code inspired by https://gist.github.com/DiTo97/9a0377f24236b66134eb96da1ec1693f """ + import logging import os import sys @@ -25,16 +26,17 @@ def _set_library_root_logger() -> None: global _default_handler with _semaphore: - if _default_handler: return - + if _default_handler: + return + _default_handler = logging.StreamHandler() # sys.stderr as stream - + # https://github.com/pyinstaller/pyinstaller/issues/7334#issuecomment-1357447176 if sys.stderr is None: sys.stderr = open(os.devnull, "w") _default_handler.flush = sys.stderr.flush - + library_root_logger = _get_library_root_logger() library_root_logger.addHandler(_default_handler) library_root_logger.setLevel(_default_logging_level) @@ -74,8 +76,8 @@ def set_verbosity_error() -> None: def set_verbosity_fatal() -> None: set_verbosity(logging.FATAL) - - + + def set_handler(handler: logging.Handler) -> None: _set_library_root_logger() @@ -86,31 +88,31 @@ def set_handler(handler: logging.Handler) -> None: def set_default_handler() -> None: set_handler(_default_handler) - - + + def unset_handler(handler: logging.Handler) -> None: _set_library_root_logger() assert handler is not None _get_library_root_logger().removeHandler(handler) - - + + def unset_default_handler() -> None: unset_handler(_default_handler) def set_propagation() -> None: _get_library_root_logger().propagate = True - - + + def unset_propagation() -> None: _get_library_root_logger().propagate = False - - + + def set_formatting() -> None: """sets formatting for all handlers bound to the root logger - + ``` [levelname|filename|line number] time >> message ``` @@ -121,12 +123,12 @@ def set_formatting() -> None: for handler in _get_library_root_logger().handlers: handler.setFormatter(formatter) - + def unset_formatting() -> None: for handler in _get_library_root_logger().handlers: handler.setFormatter(None) - + @lru_cache(None) def warning_once(self, *args, **kwargs): @@ -134,4 +136,4 @@ def warning_once(self, *args, **kwargs): self.warning(*args, **kwargs) -logging.Logger.warning_once = warning_once \ No newline at end of file +logging.Logger.warning_once = warning_once