30 lines
732 B
Python
30 lines
732 B
Python
import logging
|
|
|
|
from uvicorn.logging import ColourizedFormatter
|
|
from uvicorn.config import LOGGING_CONFIG
|
|
|
|
|
|
LOGFMT = "%(asctime)s %(levelprefix)s [%(name)s] %(message)s"
|
|
|
|
|
|
def logcfg(level=logging.INFO, fmt=LOGFMT, **kwargs):
|
|
formatter = ColourizedFormatter(fmt=fmt, **kwargs)
|
|
|
|
handler = logging.StreamHandler()
|
|
handler.setFormatter(formatter)
|
|
|
|
logging.basicConfig(level=level, handlers=[handler])
|
|
|
|
# add timestamps to uvicorn logs
|
|
formatters = LOGGING_CONFIG["formatters"]
|
|
for formatter in formatters.values():
|
|
if "fmt" not in formatter:
|
|
continue
|
|
fmt = formatter["fmt"]
|
|
if "%(asctime)s" in fmt:
|
|
continue
|
|
formatter["fmt"] = "%(asctime)s " + fmt
|
|
|
|
|
|
|