fix: update docker logger settings to better match normal log settings (#31448)

* fix: update docker logger settings to better match normal log settings

* feat: add docker-production settings for cms
This commit is contained in:
alangsto
2022-12-15 09:17:12 -05:00
committed by GitHub
parent 7653e408c1
commit a1322abb0d
3 changed files with 110 additions and 88 deletions

View File

@@ -0,0 +1,9 @@
"""
Specific overrides to the base prod settings for a docker production deployment.
"""
from .production import * # pylint: disable=wildcard-import, unused-wildcard-import
from openedx.core.lib.logsettings import get_docker_logger_config
LOGGING = get_docker_logger_config()

View File

@@ -2,95 +2,8 @@
Specific overrides to the base prod settings for a docker production deployment.
"""
import platform
from .production import * # pylint: disable=wildcard-import, unused-wildcard-import
def get_docker_logger_config(log_dir='/var/tmp',
logging_env="no_env",
edx_filename="edx.log",
dev_env=False,
debug=False,
service_variant='lms'):
"""
Return the appropriate logging config dictionary. You should assign the
result of this to the LOGGING var in your settings.
"""
hostname = platform.node().split(".")[0]
syslog_format = (
"[service_variant={service_variant}]"
"[%(name)s][env:{logging_env}] %(levelname)s "
"[{hostname} %(process)d] [%(filename)s:%(lineno)d] "
"- %(message)s"
).format(
service_variant=service_variant,
logging_env=logging_env, hostname=hostname
)
handlers = ['console']
logger_config = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '%(asctime)s %(levelname)s %(process)d '
'[%(name)s] %(filename)s:%(lineno)d - %(message)s',
},
'syslog_format': {'format': syslog_format},
'raw': {'format': '%(message)s'},
},
'handlers': {
'console': {
'level': 'DEBUG' if debug else 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'standard',
'stream': sys.stdout,
},
'tracking': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/tmp/tracking_logs.log',
'backupCount': 5,
'formatter': 'raw',
'maxBytes': 10485760
}
},
'loggers': {
'django': {
'handlers': handlers,
'propagate': True,
'level': 'INFO'
},
'tracking': {
'handlers': ['tracking'],
'level': 'DEBUG',
'propagate': False,
},
'requests': {
'handlers': handlers,
'propagate': True,
'level': 'WARNING'
},
'factory': {
'handlers': handlers,
'propagate': True,
'level': 'WARNING'
},
'django.request': {
'handlers': handlers,
'propagate': True,
'level': 'WARNING'
},
'': {
'handlers': handlers,
'level': 'DEBUG',
'propagate': False
},
}
}
return logger_config
from openedx.core.lib.logsettings import get_docker_logger_config
LOGGING = get_docker_logger_config()

View File

@@ -135,3 +135,103 @@ def log_python_warnings():
except ImportError:
pass
logging.captureWarnings(True)
def get_docker_logger_config(log_dir='/var/tmp',
logging_env="no_env",
edx_filename="edx.log",
dev_env=False,
debug=False,
service_variant='lms'):
"""
Return the appropriate logging config dictionary for a docker based setup.
You should assign the result of this to the LOGGING var in your settings.
"""
hostname = platform.node().split(".")[0]
syslog_format = (
"[service_variant={service_variant}]"
"[%(name)s][env:{logging_env}] %(levelname)s "
"[{hostname} %(process)d] [%(filename)s:%(lineno)d] "
"- %(message)s"
).format(
service_variant=service_variant,
logging_env=logging_env, hostname=hostname
)
handlers = ['console']
logger_config = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'standard': {
'format': '%(asctime)s %(levelname)s %(process)d '
'[%(name)s] %(filename)s:%(lineno)d - %(message)s',
},
'syslog_format': {'format': syslog_format},
'raw': {'format': '%(message)s'},
},
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'userid_context': {
'()': 'edx_django_utils.logging.UserIdFilter',
},
'remoteip_context': {
'()': 'edx_django_utils.logging.RemoteIpFilter',
}
},
'handlers': {
'console': {
'level': 'DEBUG' if debug else 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'standard',
'filters': ['userid_context', 'remoteip_context'],
'stream': sys.stderr,
},
'tracking': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/tmp/tracking_logs.log',
'backupCount': 5,
'formatter': 'raw',
'maxBytes': 10485760
}
},
'loggers': {
'django': {
'handlers': handlers,
'propagate': True,
'level': 'INFO'
},
'tracking': {
'handlers': ['tracking'],
'level': 'DEBUG',
'propagate': False,
},
'requests': {
'handlers': handlers,
'propagate': True,
'level': 'WARNING'
},
'factory': {
'handlers': handlers,
'propagate': True,
'level': 'WARNING'
},
'django.request': {
'handlers': handlers,
'propagate': True,
'level': 'ERROR'
},
'': {
'handlers': handlers,
'level': 'INFO',
'propagate': False
},
}
}
return logger_config