diff --git a/utils/logger.py b/utils/logger.py index a81dd6f0..6e049a96 100644 --- a/utils/logger.py +++ b/utils/logger.py @@ -44,14 +44,30 @@ def filter(record: logging.LogRecord) -> bool: "GraphQL request:", "Traceback (most recent call last):", "graphql.error.graphql_error.GraphQLError: Требуется авторизация", + "load_drafts", + "GetUserDocuments", + "GetDrafts", + "During handling of the above exception", + "await gather", + "raise error", + "handle_field_error", + "await_result", ] ): return False # Не логируем ошибки авторизации и их трейсбеки # Подавляем повторяющиеся Ariadne логи - if record.name in ["ariadne", "graphql"] and record.levelno == logging.ERROR: + if record.name in ["ariadne", "graphql"]: message = record.getMessage() - if "Требуется авторизация" in message: + if any( + phrase in message + for phrase in [ + "Требуется авторизация", + "AuthorizationError", + "load_drafts", + "GraphQL request:", + ] + ): return False return True @@ -160,7 +176,21 @@ class AriadneAuthFilter(logging.Filter): # Полностью блокируем логи связанные с авторизацией в Ariadne return not any( phrase in message - for phrase in ["Требуется авторизация", "AuthorizationError", "GraphQL request:", "decorated_function"] + for phrase in [ + "Требуется авторизация", + "AuthorizationError", + "GraphQL request:", + "decorated_function", + "load_drafts", + "GetUserDocuments", + "GetDrafts", + "Traceback", + "await gather", + "handle_field_error", + "await_result", + "During handling", + "raise error", + ] ) @@ -168,6 +198,12 @@ class AriadneAuthFilter(logging.Filter): ariadne_logger.addFilter(AriadneAuthFilter()) graphql_logger.addFilter(AriadneAuthFilter()) +# Дополнительно блокируем логи на уровне модулей +for logger_name in ["ariadne.log_error", "ariadne", "graphql.execution.execute"]: + extra_logger = logging.getLogger(logger_name) + extra_logger.setLevel(logging.CRITICAL) + extra_logger.addFilter(AriadneAuthFilter()) + def custom_error_formatter(error: GraphQLError, debug: bool = False) -> dict[Any, Any]: """