Cherrypick logging configuration from VBV-326

This commit is contained in:
Elia Bieri 2023-06-28 17:17:05 +02:00
parent dd93012bba
commit dcf855a443
2 changed files with 43 additions and 0 deletions

View File

@ -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,

View File

@ -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