Coverage for whole_app/misc_helpers.py: 100%
9 statements
« prev ^ index » next coverage.py v7.10.4, created at 2025-08-21 23:45 +0000
« prev ^ index » next coverage.py v7.10.4, created at 2025-08-21 23:45 +0000
1import logging
2import typing
4import structlog
6from whole_app.settings import SETTINGS
9def init_logger() -> None:
10 our_processors: typing.Final[typing.Any] = [
11 structlog.contextvars.merge_contextvars,
12 structlog.processors.add_log_level,
13 structlog.processors.format_exc_info,
14 structlog.processors.TimeStamper(fmt="iso", utc=True),
15 ]
16 if SETTINGS.structured_logging:
17 our_processors.append(structlog.processors.JSONRenderer())
18 structlog.configure(
19 cache_logger_on_first_use=True,
20 wrapper_class=structlog.make_filtering_bound_logger(logging.INFO),
21 processors=our_processors,
22 )