ariadne
ariadne copied to clipboard
Support passing logger instance to logger option
Hello,
First, thanks for the job you do here.
In our logging system, we use a special LoggerAdapter
for our logging needs and we'd like to use it as well for ariadne. However, looking at the code, we can only get a simple logger by his name but not the adapter.
My code looks like this (it's a django app): (in views.py)
from ariadne.wsgi import GraphQL
from .schema import schema
app = GraphQL(schema, logger="my_app")
(in settings.py)
from logging import getLogger, StreamHandler, getLevelName
from logger_python.logger import EnlapsLoggerAdapter
from my_app.config import Config
internal_logger = getLogger("my_app")
internal_logger.setLevel(getLevelName(Config.log_level))
stream_handler = StreamHandler()
stream_handler.setLevel(getLevelName(Config.log_level))
internal_logger.addHandler(stream_handler)
logger = EnlapsLoggerAdapter(internal_logger, {})
However i'm unable to get my LoggerAdapter
on ariadne. It'd be nice if we could "pass" the logger object or the logger name, something like:
from ariadne.wsgi import GraphQL
from my_app.logger import logger
from .schema import schema
app = GraphQL(schema, logger=logger)
I'm open to contribute on this ofc.
Cheers
Hi!
If this is change for Django app, ariadne_django would also need to get a PR (due to #656).
But option to pass logger instance as logger
instead of str
makes sense to me. I'll put this on our roadmap. PR's welcome!