diff --git a/utils/logger.py b/utils/logger.py index 59b59109..b17773f7 100644 --- a/utils/logger.py +++ b/utils/logger.py @@ -21,6 +21,37 @@ def console_filter(record: logging.LogRecord) -> bool: if record.name.startswith("urllib3") and "glitchtip.dscrs.site" in record.getMessage(): return False + # 🚫 Блокируем httpcore trace логи (спам от HTTP запросов) + if record.name.startswith("httpcore") and "_trace" in record.name: + return False + + # 🚫 Блокируем повторяющиеся debug логи из резолверов + message = record.getMessage() + if record.levelno == logging.DEBUG and any( + spam_phrase in message + for spam_phrase in [ + "connect_tcp.started", + "connect_tcp.complete", + "start_tls.started", + "start_tls.complete", + "send_request_headers", + "send_request_body", + "receive_response_headers", + "receive_response_body", + "response_closed", + "close.started", + "close.complete", + "Adding main_topic subquery", + "Adding topics subquery", + "get_shouts_with_links] Starting with limit=", + "Applied Python sorting by views_count", + "Raw cached data size:", + "Attempting to get cached data for key:", + "Данные получены из кеша по ключу", + ] + ): + return False + # Define `package` attribute with the relative path. record.package = record.pathname[_leng_path + 1 :].replace(".py", "") record.emoji = ( @@ -188,7 +219,18 @@ root_logger.setLevel(logging.DEBUG) root_logger.addHandler(stream) root_logger.addFilter(basic_filter) # 🔍 Базовый фильтр - позволяет Sentry получать все логи -ignore_logs = ["_trace", "httpx", "_client", "atrace", "aiohttp", "_client", "ariadne", "graphql", "urllib3"] +ignore_logs = [ + "_trace", + "httpx", + "_client", + "atrace", + "aiohttp", + "_client", + "ariadne", + "graphql", + "urllib3", + "httpcore", +] for lgr in ignore_logs: loggr = logging.getLogger(lgr) loggr.setLevel(logging.CRITICAL) # Подавляем все кроме критических ошибок @@ -198,6 +240,11 @@ urllib3_logger = logging.getLogger("urllib3.connectionpool") urllib3_logger.setLevel(logging.CRITICAL) urllib3_logger.disabled = True # Полностью отключаем urllib3 логи +# 🚫 Подавляем httpcore trace логи (спам от HTTP запросов) +httpcore_logger = logging.getLogger("httpcore._trace") +httpcore_logger.setLevel(logging.CRITICAL) +httpcore_logger.disabled = True # Полностью отключаем httpcore trace логи + # Дополнительно подавляем логи GraphQL и Ariadne для ошибок авторизации graphql_logger = logging.getLogger("graphql") graphql_logger.setLevel(logging.CRITICAL) # Подавляем ERROR уровень для авторизации