Coverage for faststream / rabbit / broker / logging.py: 94%
14 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-08 01:48 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-08 01:48 +0000
1from functools import partial
2from typing import TYPE_CHECKING, Any
4from faststream._internal.logger import DefaultLoggerStorage, make_logger_state
5from faststream._internal.logger.logging import get_broker_logger
7if TYPE_CHECKING:
8 from faststream._internal.basic_types import LoggerProto
9 from faststream._internal.context import ContextRepo
12class RabbitParamsStorage(DefaultLoggerStorage):
13 def __init__(self) -> None:
14 super().__init__()
16 self._max_exchange_len = 4
17 self._max_queue_len = 4
19 def register_subscriber(self, params: dict[str, Any]) -> None:
20 self._max_exchange_len = max(
21 self._max_exchange_len,
22 len(params.get("exchange", "")),
23 )
24 self._max_queue_len = max(
25 self._max_queue_len,
26 len(params.get("queue", "")),
27 )
29 def get_logger(self, *, context: "ContextRepo") -> "LoggerProto":
30 # TODO: generate unique logger names to not share between brokers
31 if not (lg := self._get_logger_ref()): 31 ↛ 53line 31 didn't jump to line 53 because the condition on line 31 was always true
32 message_id_ln = 10
34 lg = get_broker_logger(
35 name="rabbit",
36 default_context={
37 "queue": "",
38 "exchange": "",
39 },
40 message_id_ln=message_id_ln,
41 fmt=(
42 "%(asctime)s %(levelname)-8s - "
43 f"%(exchange)-{self._max_exchange_len}s | "
44 f"%(queue)-{self._max_queue_len}s | "
45 f"%(message_id)-{message_id_ln}s "
46 "- %(message)s"
47 ),
48 context=context,
49 log_level=self.logger_log_level,
50 )
51 self._logger_ref.add(lg)
53 return lg
56make_rabbit_logger_state = partial(
57 make_logger_state,
58 default_storage_cls=RabbitParamsStorage,
59)