Supports JSON logging for gunicorn process within Docker. #8665

Co-authored-by: Allen Hernandez <2349718+AllenSH12@users.noreply.github.com>
pull/8824/head
Allen Hernandez 2025-06-03 04:03:09 -04:00 committed by GitHub
parent 12b263c20b
commit 0a2db9bc59
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 44 additions and 1 deletions

View File

@ -1,2 +1,45 @@
import gunicorn import gunicorn
gunicorn.SERVER_SOFTWARE = 'Python'
# Can be resolved because of how Dockerfile organizes the code during build
from config import JSON_LOGGER, CONSOLE_LOG_LEVEL, CONSOLE_LOG_FORMAT_JSON
gunicorn.SERVER_SOFTWARE = "Python"
if JSON_LOGGER:
logconfig_dict = {
"version": 1,
"disable_existing_loggers": False,
"root": {"level": CONSOLE_LOG_LEVEL, "handlers": []},
"loggers": {
"gunicorn.error": {
"level": CONSOLE_LOG_LEVEL,
"handlers": ["error_console"],
"propagate": True,
"qualname": "gunicorn.error",
},
"gunicorn.access": {
"level": CONSOLE_LOG_LEVEL,
"handlers": ["console"],
"propagate": True,
"qualname": "gunicorn.access",
},
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"formatter": "json",
"stream": "ext://sys.stdout",
},
"error_console": {
"class": "logging.StreamHandler",
"formatter": "json",
"stream": "ext://sys.stderr",
},
},
"formatters": {
"json": {
"class": "jsonformatter.JsonFormatter",
"format": CONSOLE_LOG_FORMAT_JSON,
},
},
}