generated from westfarn/web_django_template
62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
"""Environment-specific logging configuration."""
|
|
|
|
import os
|
|
|
|
|
|
def build_logging_config(level: str, environment: str) -> dict:
|
|
"""Return a Django LOGGING dict for the given level and environment name."""
|
|
return {
|
|
"version": 1,
|
|
"disable_existing_loggers": False,
|
|
"formatters": {
|
|
"verbose": {
|
|
"format": (
|
|
f"{{levelname}} {{asctime}} {{name}} {{filename}}:{{lineno}} "
|
|
f"{{process:d}} {{thread:d}} [env={environment}] {{message}}"
|
|
),
|
|
"style": "{",
|
|
},
|
|
"simple": {
|
|
"format": (
|
|
f"{{levelname}} [env={environment}] "
|
|
f"{{filename}}:{{lineno}} {{message}}"
|
|
),
|
|
"style": "{",
|
|
},
|
|
},
|
|
"handlers": {
|
|
"console": {
|
|
"class": "logging.StreamHandler",
|
|
"formatter": "verbose" if environment == "dev" else "simple",
|
|
},
|
|
},
|
|
"root": {
|
|
"handlers": ["console"],
|
|
"level": level,
|
|
},
|
|
"loggers": {
|
|
"django": {
|
|
"handlers": ["console"],
|
|
"level": level,
|
|
"propagate": False,
|
|
},
|
|
"django.request": {
|
|
"handlers": ["console"],
|
|
"level": "ERROR" if environment == "prod" else level,
|
|
"propagate": False,
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
def logging_level_for_env(environment: str) -> str:
|
|
override = os.environ.get("DJANGO_LOG_LEVEL")
|
|
if override:
|
|
return override.upper()
|
|
|
|
if environment == "dev":
|
|
return "DEBUG"
|
|
if environment == "beta":
|
|
return "INFO"
|
|
return "WARNING"
|