Cherrypick logging configuration from VBV-326
This commit is contained in:
parent
dd93012bba
commit
dcf855a443
|
|
@ -328,6 +328,9 @@ if DEBUG:
|
|||
IT_DJANGO_LOGGING_CONF = env("IT_DJANGO_LOGGING_CONF", default=logging_conf_default)
|
||||
|
||||
if IT_DJANGO_LOGGING_CONF == "IT_DJANGO_LOGGING_CONF_CONSOLE_COLOR":
|
||||
IT_LOCAL_HIDE_DJANGO_SERVER_LOGS = env.bool(
|
||||
"IT_LOCAL_HIDE_DJANGO_SERVER_LOGS", True
|
||||
)
|
||||
timestamper = structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S")
|
||||
LOGGING = {
|
||||
"version": 1,
|
||||
|
|
@ -347,6 +350,9 @@ if IT_DJANGO_LOGGING_CONF == "IT_DJANGO_LOGGING_CONF_CONSOLE_COLOR":
|
|||
"class": "logging.StreamHandler",
|
||||
"formatter": "colored",
|
||||
},
|
||||
"null": {
|
||||
"class": "logging.NullHandler",
|
||||
},
|
||||
},
|
||||
"loggers": {
|
||||
"": {
|
||||
|
|
@ -354,11 +360,29 @@ if IT_DJANGO_LOGGING_CONF == "IT_DJANGO_LOGGING_CONF_CONSOLE_COLOR":
|
|||
"level": "INFO",
|
||||
"propagate": True,
|
||||
},
|
||||
"django": {
|
||||
"handlers": ["default"],
|
||||
"level": "INFO",
|
||||
"propagate": False,
|
||||
},
|
||||
"django.server": {
|
||||
"handlers": ["null"]
|
||||
if IT_LOCAL_HIDE_DJANGO_SERVER_LOGS
|
||||
else ["default"],
|
||||
"level": "INFO",
|
||||
"propagate": False,
|
||||
},
|
||||
"vbv_lernwelt": {
|
||||
"handlers": ["default"],
|
||||
"level": "DEBUG",
|
||||
"propagate": False,
|
||||
},
|
||||
"vbv_lernwelt.core.middleware.security": {
|
||||
"handlers": ["default"],
|
||||
# Security logs are mainly meant for production
|
||||
"level": "WARN" if IT_LOCAL_HIDE_DJANGO_SERVER_LOGS else "DEBUG",
|
||||
"propagate": False,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
|
@ -573,6 +597,9 @@ OAUTH = {
|
|||
GRAPHENE = {
|
||||
"SCHEMA": "vbv_lernwelt.core.schema.schema",
|
||||
"SCHEMA_OUTPUT": "../client/src/gql/schema.graphql",
|
||||
"MIDDLEWARE": [
|
||||
"vbv_lernwelt.core.middleware.graphene.GrapheneErrorLoggingMiddleware",
|
||||
],
|
||||
}
|
||||
# GRAPPLE = {
|
||||
# "EXPOSE_GRAPHIQL": DEBUG,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
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
|
||||
Loading…
Reference in New Issue