import traceback import structlog from graphene import ResolveInfo logger = structlog.get_logger(__name__) class GrapheneErrorLoggingMiddleware(object): # https://jerrynsh.com/how-to-monitor-python-graphql-api-with-sentry/ def resolve(self, next, root, info: ResolveInfo, **args): try: return next(root, info, **args) except Exception as error: logger.error(traceback.format_exc()) raise error