Implement Monlet MVP stack and UI updates

This commit is contained in:
Stanislav Rossovskii
2026-05-27 10:01:59 +04:00
parent dcea096327
commit edc51e9c59
145 changed files with 15618 additions and 248 deletions

View File

@@ -0,0 +1,36 @@
import logging
from contextvars import ContextVar
import structlog
request_id_var: ContextVar[str | None] = ContextVar("request_id", default=None)
def _add_request_id(_logger, _name, event_dict):
rid = request_id_var.get()
if rid is not None:
event_dict["request_id"] = rid
return event_dict
def configure_logging(level: str = "INFO") -> None:
logging.basicConfig(format="%(message)s", level=getattr(logging, level.upper(), logging.INFO))
structlog.configure(
processors=[
structlog.contextvars.merge_contextvars,
_add_request_id,
structlog.processors.add_log_level,
structlog.processors.TimeStamper(fmt="iso", utc=True),
structlog.processors.StackInfoRenderer(),
structlog.processors.format_exc_info,
structlog.processors.JSONRenderer(),
],
wrapper_class=structlog.make_filtering_bound_logger(
getattr(logging, level.upper(), logging.INFO)
),
cache_logger_on_first_use=True,
)
def get_logger(name: str = "monlet"):
return structlog.get_logger(name)