lesslogger
This commit is contained in:
@@ -32,11 +32,27 @@ def filter(record: logging.LogRecord) -> bool:
|
||||
else ""
|
||||
)
|
||||
|
||||
# Подавляем логи ошибок авторизации
|
||||
if record.levelno == logging.ERROR and record.getMessage():
|
||||
# Подавляем логи ошибок авторизации и GraphQL трейсбеки
|
||||
if record.levelno >= logging.ERROR and record.getMessage():
|
||||
message = record.getMessage()
|
||||
if "Требуется авторизация" in message or "AuthorizationError" in message:
|
||||
return False # Не логируем ошибки авторизации
|
||||
# Подавляем ошибки авторизации
|
||||
if any(
|
||||
phrase in message
|
||||
for phrase in [
|
||||
"Требуется авторизация",
|
||||
"AuthorizationError",
|
||||
"GraphQL request:",
|
||||
"Traceback (most recent call last):",
|
||||
"graphql.error.graphql_error.GraphQLError: Требуется авторизация",
|
||||
]
|
||||
):
|
||||
return False # Не логируем ошибки авторизации и их трейсбеки
|
||||
|
||||
# Подавляем повторяющиеся Ariadne логи
|
||||
if record.name in ["ariadne", "graphql"] and record.levelno == logging.ERROR:
|
||||
message = record.getMessage()
|
||||
if "Требуется авторизация" in message:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
@@ -127,14 +143,30 @@ root_logger.addFilter(filter)
|
||||
ignore_logs = ["_trace", "httpx", "_client", "atrace", "aiohttp", "_client", "ariadne", "graphql"]
|
||||
for lgr in ignore_logs:
|
||||
loggr = logging.getLogger(lgr)
|
||||
loggr.setLevel(logging.WARNING) # Повышаем до WARNING для подавления INFO и DEBUG
|
||||
loggr.setLevel(logging.CRITICAL) # Подавляем все кроме критических ошибок
|
||||
|
||||
# Дополнительно подавляем логи GraphQL и Ariadne для ошибок авторизации
|
||||
graphql_logger = logging.getLogger("graphql")
|
||||
graphql_logger.setLevel(logging.WARNING)
|
||||
graphql_logger.setLevel(logging.CRITICAL) # Подавляем ERROR уровень для авторизации
|
||||
|
||||
ariadne_logger = logging.getLogger("ariadne")
|
||||
ariadne_logger.setLevel(logging.WARNING)
|
||||
ariadne_logger.setLevel(logging.CRITICAL) # Подавляем ERROR уровень для авторизации
|
||||
|
||||
|
||||
# Создаем специальный фильтр для Ariadne
|
||||
class AriadneAuthFilter(logging.Filter):
|
||||
def filter(self, record: logging.LogRecord) -> bool:
|
||||
message = record.getMessage()
|
||||
# Полностью блокируем логи связанные с авторизацией в Ariadne
|
||||
return not any(
|
||||
phrase in message
|
||||
for phrase in ["Требуется авторизация", "AuthorizationError", "GraphQL request:", "decorated_function"]
|
||||
)
|
||||
|
||||
|
||||
# Применяем фильтр к Ariadne и GraphQL логгерам
|
||||
ariadne_logger.addFilter(AriadneAuthFilter())
|
||||
graphql_logger.addFilter(AriadneAuthFilter())
|
||||
|
||||
|
||||
def custom_error_formatter(error: GraphQLError, debug: bool = False) -> dict[Any, Any]:
|
||||
|
||||
Reference in New Issue
Block a user