Skip to content

Commit

Permalink
fix root logger handler
Browse files Browse the repository at this point in the history
  • Loading branch information
sainivedh committed Nov 28, 2023
1 parent 4c75dd6 commit 356a5a7
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 6 deletions.
22 changes: 16 additions & 6 deletions clarifai/utils/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,21 @@ def _get_library_name() -> str:
return __name__.split(".")[0]


def _configure_logger(logger_level: str = "ERROR") -> None:
logging.basicConfig(
level=logger_level,
datefmt='%Y-%m-%d %H:%M:%S',
handlers=[RichHandler(rich_tracebacks=True)])
def _configure_logger(name: str, logger_level: str = "ERROR") -> None:
"""Configure the logger with the specified name."""

logger = logging.getLogger(name)
logger.setLevel(logger_level)

# Remove existing handlers
for handler in logger.handlers[:]:
logger.removeHandler(handler)

# Add the new rich handler and formatter
handler = RichHandler(rich_tracebacks=True)
formatter = logging.Formatter('%(name)s: %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)


def get_logger(logger_level: str = "ERROR", name: Optional[str] = None) -> logging.Logger:
Expand All @@ -86,5 +96,5 @@ def get_logger(logger_level: str = "ERROR", name: Optional[str] = None) -> loggi
if name is None:
name = _get_library_name()

_configure_logger(logger_level)
_configure_logger(name, logger_level)
return logging.getLogger(name)
19 changes: 19 additions & 0 deletions tests/test_misc.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import logging

from rich.logging import RichHandler

from clarifai.utils.logging import _get_library_name, get_logger


def test_get_logger():
logger = get_logger("DEBUG", "test_logger")
assert logger.level == logging.DEBUG
assert logger.name == "test_logger"
assert isinstance(logger.handlers[0], RichHandler)


def test_get_logger_default_name():
logger = get_logger("DEBUG")
assert logger.level == logging.DEBUG
assert logger.name == _get_library_name()
assert isinstance(logger.handlers[0], RichHandler)

0 comments on commit 356a5a7

Please sign in to comment.