fix(logs): restore uvicorn and llama_stack logger settings

This commit is contained in:
Ashwin Bharambe 2025-10-21 15:46:49 -07:00
parent eb2b240594
commit 557b1b8c2d

View file

@ -236,12 +236,30 @@ def setup_logging(category_levels: dict[str, int] | None = None, log_file: str |
} }
}, },
"loggers": { "loggers": {
category: { **{
"handlers": list(handlers.keys()), # Apply all handlers category: {
"level": category_levels.get(category, DEFAULT_LOG_LEVEL), "handlers": list(handlers.keys()), # Apply all handlers
"propagate": False, # Disable propagation to root logger "level": category_levels.get(category, DEFAULT_LOG_LEVEL),
} "propagate": False, # Disable propagation to root logger
for category in CATEGORIES }
for category in CATEGORIES
},
# Explicitly configure uvicorn loggers to preserve their INFO level
"uvicorn": {
"handlers": list(handlers.keys()),
"level": logging.INFO,
"propagate": False,
},
"uvicorn.error": {
"handlers": list(handlers.keys()),
"level": logging.INFO,
"propagate": False,
},
"uvicorn.access": {
"handlers": list(handlers.keys()),
"level": logging.INFO,
"propagate": False,
},
}, },
"root": { "root": {
"handlers": list(handlers.keys()), "handlers": list(handlers.keys()),
@ -250,9 +268,13 @@ def setup_logging(category_levels: dict[str, int] | None = None, log_file: str |
} }
dictConfig(logging_config) dictConfig(logging_config)
# Ensure third-party libraries follow the root log level # Ensure third-party libraries follow the root log level, but preserve
for _, logger in logging.root.manager.loggerDict.items(): # already-configured loggers (e.g., uvicorn) and our own llama_stack loggers
for name, logger in logging.root.manager.loggerDict.items():
if isinstance(logger, logging.Logger): if isinstance(logger, logging.Logger):
# Skip infrastructure loggers (uvicorn, fastapi) and our own loggers
if name.startswith(("uvicorn", "fastapi", "llama_stack")):
continue
logger.setLevel(root_level) logger.setLevel(root_level)