Skip to content

Commit 5a1d6ba

Browse files
committed
reviews
1 parent 5780363 commit 5a1d6ba

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

packages/service-library/src/servicelib/logging_utils.py

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from asyncio import iscoroutinefunction
1515
from collections.abc import Callable, Iterator
1616
from contextlib import contextmanager
17+
from dataclasses import dataclass
1718
from datetime import datetime
1819
from inspect import getframeinfo, stack
1920
from pathlib import Path
@@ -584,31 +585,32 @@ def set_parent_module_log_level(
584585
logging.getLogger(parent_module).setLevel(desired_log_level)
585586

586587

587-
def _store_logger_state(loggers: list[logging.Logger]) -> list[dict[str, Any]]:
588-
"""Store the original state of loggers for later restoration."""
588+
@dataclass(frozen=True)
589+
class _LoggerState:
590+
logger: logging.Logger
591+
handlers: list[logging.Handler]
592+
propagate: bool
593+
594+
595+
def _store_logger_state(loggers: list[logging.Logger]) -> list[_LoggerState]:
589596
return [
590-
{
591-
"logger": logger,
592-
"handlers": logger.handlers.copy(),
593-
"propagate": logger.propagate,
594-
}
597+
_LoggerState(logger, logger.handlers.copy(), logger.propagate)
595598
for logger in loggers
596599
]
597600

598601

599-
def _restore_logger_state(original_state: list[dict[str, Any]]) -> None:
600-
"""Restore loggers to their original state."""
602+
def _restore_logger_state(original_state: list[_LoggerState]) -> None:
601603
for state in original_state:
602-
logger = state["logger"]
604+
logger = state.logger
603605
logger.handlers.clear()
604-
logger.handlers.extend(state["handlers"])
605-
logger.propagate = state["propagate"]
606+
logger.handlers.extend(state.handlers)
607+
logger.propagate = state.propagate
606608

607609

608610
def _apply_comprehensive_logging_setup(
609611
all_loggers: list[logging.Logger],
610612
root_handler: logging.Handler,
611-
) -> list[dict[str, Any]]:
613+
) -> list[_LoggerState]:
612614
"""
613615
Apply comprehensive logging setup: clear all handlers, ensure propagation,
614616
and set up root logger with the provided handler.
@@ -644,6 +646,10 @@ def _apply_comprehensive_logging_setup(
644646
logger.handlers.clear()
645647
logger.propagate = True
646648

649+
# Set up root logger with the provided handler only
650+
root_logger.handlers.clear()
651+
root_logger.addHandler(root_handler)
652+
647653
if loggers_modified:
648654
_logger.info(
649655
"Modified %d loggers for comprehensive logging: %s",
@@ -656,8 +662,4 @@ def _apply_comprehensive_logging_setup(
656662
),
657663
)
658664

659-
# Set up root logger with the provided handler only
660-
root_logger.handlers.clear()
661-
root_logger.addHandler(root_handler)
662-
663665
return original_logger_state

0 commit comments

Comments
 (0)