From 628702d0668fa0df5cefab6b4b1a90bd78263889 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Tue, 28 Apr 2026 15:39:34 +0300 Subject: [PATCH] fix: set faststream log level on logger before injecting into broker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LoggerState.set_level() was being called after assigning ManualLoggerStorage, which set both the underlying logger threshold AND LoggerState.log_level to WARNING. Since FastStream logs Received/Processed without an explicit level, it used LoggerState.log_level — so messages were submitted at WARNING and passed the filter. Fix: call setLevel() on the structlog logger directly before passing to ManualLoggerStorage, leaving LoggerState.log_level at its INFO default. Messages are then submitted at INFO and dropped by filter_by_level against the WARNING threshold. --- lite_bootstrap/bootstrappers/faststream_bootstrapper.py | 5 +++-- tests/test_faststream_bootstrap.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lite_bootstrap/bootstrappers/faststream_bootstrapper.py b/lite_bootstrap/bootstrappers/faststream_bootstrapper.py index 6982525..f4a3fdd 100644 --- a/lite_bootstrap/bootstrappers/faststream_bootstrapper.py +++ b/lite_bootstrap/bootstrappers/faststream_bootstrapper.py @@ -109,8 +109,9 @@ def bootstrap(self) -> None: super().bootstrap() broker = self.bootstrap_config.application.broker if broker is not None and import_checker.is_structlog_installed and import_checker.is_faststream_installed: - broker.config.logger.params_storage = ManualLoggerStorage(structlog.get_logger("faststream")) - broker.config.logger.set_level(self.bootstrap_config.faststream_log_level) + logger = structlog.get_logger("faststream") + logger.setLevel(self.bootstrap_config.faststream_log_level) + broker.config.logger.params_storage = ManualLoggerStorage(logger) @dataclasses.dataclass(kw_only=True, frozen=True) diff --git a/tests/test_faststream_bootstrap.py b/tests/test_faststream_bootstrap.py index 3c174d7..d0dcf1b 100644 --- a/tests/test_faststream_bootstrap.py +++ b/tests/test_faststream_bootstrap.py @@ -99,7 +99,7 @@ def test_faststream_logging_instrument_injects_structlog_logger(broker: RedisBro bootstrapper.bootstrap() try: assert isinstance(broker.config.logger.params_storage, ManualLoggerStorage) - assert broker.config.logger.log_level == logging.WARNING + assert logging.getLogger("faststream").level == logging.WARNING finally: bootstrapper.teardown()