Skip to content

brotich/graphql_error_logger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Summary

  • allows for the logging of the exception happening in the flask-graphql framework.

  • this hooks into the graphql error handler and logs the original error, along with its stacktrace

  • this allows one to see the data for an error like

{
  "errors": [
    {
      "message": "sdsd",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "users"
      ]
    }
  ],
  "data": {
    "users": null
  }
}

as

2020-04-06 00:02:43,217 - LIA-logger:30 - ERROR - error in resolvers
Traceback (most recent call last):
  File "/Users/brianrotich/.pyenv/versions/3.6.10/envs/test-app/lib/python3.6/site-packages/graphql/execution/executor.py", line 452, in resolve_or_error
    return executor.execute(resolve_fn, source, info, **args)
  File "/Users/brianrotich/.pyenv/versions/3.6.10/envs/test-app/lib/python3.6/site-packages/graphql/execution/executors/sync.py", line 16, in execute
    return fn(*args, **kwargs)
  File "/Users/brianrotich/.pyenv/versions/3.6.10/envs/test-app/lib/python3.6/site-packages/graphene/relay/connection.py", line 161, in connection_resolver
    resolved = resolver(root, info, **args)
  File "/Users/brianrotich/codes/app/test-app/__init__.py", line 187, in resolve_users
    raise ValueError('sdsd')
ValueError: sdsd

Usage

a. using an existing logger in the app.py

import logging

import graphql_error_logger

def create_app():
    # logger initialization and configuration
    logger= logging.getLogger(__name__)
    graphql_error_logger.init_logger(logger)

b. if no logger is provided, the library creates a logger called graphql-error-logger automatically

import graphql_error_logger

def create_app():
    graphql_error_logger.init_logger()
  • this logger is configured to use the ERROR log level to log the exception stacktrace

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages