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)
|
IT_DJANGO_LOGGING_CONF = env("IT_DJANGO_LOGGING_CONF", default=logging_conf_default)
|
||||||
|
|
||||||
if IT_DJANGO_LOGGING_CONF == "IT_DJANGO_LOGGING_CONF_CONSOLE_COLOR":
|
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")
|
timestamper = structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S")
|
||||||
LOGGING = {
|
LOGGING = {
|
||||||
"version": 1,
|
"version": 1,
|
||||||
|
|
@ -347,6 +350,9 @@ if IT_DJANGO_LOGGING_CONF == "IT_DJANGO_LOGGING_CONF_CONSOLE_COLOR":
|
||||||
"class": "logging.StreamHandler",
|
"class": "logging.StreamHandler",
|
||||||
"formatter": "colored",
|
"formatter": "colored",
|
||||||
},
|
},
|
||||||
|
"null": {
|
||||||
|
"class": "logging.NullHandler",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"loggers": {
|
"loggers": {
|
||||||
"": {
|
"": {
|
||||||
|
|
@ -354,11 +360,29 @@ if IT_DJANGO_LOGGING_CONF == "IT_DJANGO_LOGGING_CONF_CONSOLE_COLOR":
|
||||||
"level": "INFO",
|
"level": "INFO",
|
||||||
"propagate": True,
|
"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": {
|
"vbv_lernwelt": {
|
||||||
"handlers": ["default"],
|
"handlers": ["default"],
|
||||||
"level": "DEBUG",
|
"level": "DEBUG",
|
||||||
"propagate": False,
|
"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 = {
|
GRAPHENE = {
|
||||||
"SCHEMA": "vbv_lernwelt.core.schema.schema",
|
"SCHEMA": "vbv_lernwelt.core.schema.schema",
|
||||||
"SCHEMA_OUTPUT": "../client/src/gql/schema.graphql",
|
"SCHEMA_OUTPUT": "../client/src/gql/schema.graphql",
|
||||||
|
"MIDDLEWARE": [
|
||||||
|
"vbv_lernwelt.core.middleware.graphene.GrapheneErrorLoggingMiddleware",
|
||||||
|
],
|
||||||
}
|
}
|
||||||
# GRAPPLE = {
|
# GRAPPLE = {
|
||||||
# "EXPOSE_GRAPHIQL": DEBUG,
|
# "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