24 lines
1.1 KiB
Python
24 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import logging
|
|
|
|
_FORMAT = "%(asctime)s %(levelname)-5s [%(name)s] %(message)s"
|
|
|
|
|
|
def setup_logging(level: int = logging.INFO) -> None:
|
|
"""Единый формат логов для UI и джобы.
|
|
|
|
Логи пишутся в stderr — в Раисе их собирает платформа. Ключи шлюза и
|
|
заголовки запросов сюда не попадают никогда: клиенты логируют только
|
|
источник, путь, параметры, статус и длительность (см.
|
|
app/integrations/gateway.py).
|
|
"""
|
|
root = logging.getLogger()
|
|
if root.handlers:
|
|
# Streamlit перезапускает скрипт на каждый клик — не плодим хендлеры.
|
|
root.setLevel(level)
|
|
return
|
|
logging.basicConfig(level=level, format=_FORMAT)
|
|
# urllib3 на DEBUG пишет строки запросов — оставляем только предупреждения.
|
|
logging.getLogger("urllib3").setLevel(logging.WARNING)
|