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

1from functools import partial 

2from typing import TYPE_CHECKING, Any 

3 

4from faststream._internal.logger import DefaultLoggerStorage, make_logger_state 

5from faststream._internal.logger.logging import get_broker_logger 

6 

7if TYPE_CHECKING: 

8 from faststream._internal.basic_types import LoggerProto 

9 from faststream._internal.context import ContextRepo 

10 

11 

12class RabbitParamsStorage(DefaultLoggerStorage): 

13 def __init__(self) -> None: 

14 super().__init__() 

15 

16 self._max_exchange_len = 4 

17 self._max_queue_len = 4 

18 

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 ) 

28 

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 

33 

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) 

52 

53 return lg 

54 

55 

56make_rabbit_logger_state = partial( 

57 make_logger_state, 

58 default_storage_cls=RabbitParamsStorage, 

59)