mirror of
https://github.com/logos-blockchain/logos-blockchain-block-explorer-template.git
synced 2026-02-17 19:43:08 +00:00
69 lines
2.9 KiB
Python
69 lines
2.9 KiB
Python
import os
|
|
from logging.config import dictConfig
|
|
|
|
|
|
def get_logging_config(nbe_log_level: str, sqla_log_level: str):
|
|
return {
|
|
"version": 1,
|
|
"disable_existing_loggers": False,
|
|
"formatters": {
|
|
"standard": {
|
|
"format": "[%(asctime)s] [%(levelname)s] [%(name)s] (%(module)s:%(lineno)d): %(message)s",
|
|
"datefmt": "%Y-%m-%d %H:%M:%S",
|
|
},
|
|
"uvicorn": {
|
|
"format": "[%(asctime)s] [%(levelname)s] [uvicorn] %(message)s",
|
|
"datefmt": "%Y-%m-%d %H:%M:%S",
|
|
},
|
|
"uvicorn_access": {
|
|
"format": '%(client_addr)s - "%(request_line)s" %(status_code)s',
|
|
},
|
|
},
|
|
"handlers": {
|
|
"console": {
|
|
"class": "logging.StreamHandler",
|
|
"level": "DEBUG",
|
|
"formatter": "standard",
|
|
},
|
|
"uvicorn": {
|
|
"class": "logging.StreamHandler",
|
|
"level": "DEBUG",
|
|
"formatter": "uvicorn",
|
|
},
|
|
"uvicorn_access": {
|
|
"class": "logging.StreamHandler",
|
|
"level": "WARNING",
|
|
"formatter": "uvicorn_access",
|
|
},
|
|
},
|
|
"root": {
|
|
"handlers": ["console"],
|
|
"level": nbe_log_level,
|
|
},
|
|
"loggers": {
|
|
# ---- SQLAlchemy / SQLModel ----
|
|
"sqlalchemy": {"level": sqla_log_level, "handlers": [], "propagate": False},
|
|
"sqlalchemy.engine": {"level": sqla_log_level, "handlers": [], "propagate": False},
|
|
"sqlalchemy.pool": {"level": sqla_log_level, "handlers": [], "propagate": False},
|
|
"sqlalchemy.orm": {"level": sqla_log_level, "handlers": [], "propagate": False},
|
|
"sqlalchemy.dialects": {"level": sqla_log_level, "handlers": [], "propagate": False},
|
|
# ---- Httpx / HttpCore / Urllib3 ----
|
|
"httpx": {"level": "WARNING", "handlers": ["console"], "propagate": False},
|
|
"httpcore": {"level": "WARNING", "handlers": ["console"], "propagate": False},
|
|
"urllib3": {"level": "WARNING", "handlers": ["console"], "propagate": False},
|
|
# ---- Uvicorn / FastAPI ----
|
|
"uvicorn": {"level": "INFO", "handlers": ["uvicorn"], "propagate": False},
|
|
# "uvicorn.error": {"level": "INFO", "handlers": ["uvicorn"], "propagate": False},
|
|
"uvicorn.access": {"level": "WARNING", "handlers": ["uvicorn_access"], "propagate": False},
|
|
# ---- Application ----
|
|
"src": {"level": nbe_log_level, "handlers": ["console"], "propagate": False},
|
|
},
|
|
}
|
|
|
|
|
|
def setup_logging():
|
|
nbe_log_level = os.getenv("NBE_LOG_LEVEL", "INFO").upper()
|
|
sqla_log_level = os.getenv("SQLALCHEMY_LOG_LEVEL", "ERROR").upper()
|
|
logging_config = get_logging_config(nbe_log_level, sqla_log_level)
|
|
dictConfig(logging_config)
|