美化调试日志格式

This commit is contained in:
jingrow 2025-10-30 21:06:11 +08:00
parent 9c42b2e100
commit ba31f5adc7

View File

@ -15,13 +15,24 @@ _local = {}
# 统一 Jingrow 日志记录器(仅为本模块及调用方提供最小可用输出,不修改全局 root logger
_root_logger = logging.getLogger("jingrow")
# 简单高效:用 addLevelName 给级别上色;使用标准 Formatter 调整顺序为“时间在最后”
_ANSI = {
'DEBUG': '\x1b[36m', # cyan
'INFO': '\x1b[32m', # green
'WARNING': '\x1b[33m', # yellow
'ERROR': '\x1b[31m', # red
'CRITICAL': '\x1b[41m' # red background
}
for _lvl in list(_ANSI.keys()):
_code = _ANSI[_lvl]
logging.addLevelName(getattr(logging, _lvl), f"{_code}{_lvl}\x1b[0m")
def _ensure_logging_configured() -> None:
if not _root_logger.handlers:
handler = logging.StreamHandler()
formatter = logging.Formatter(
fmt="%(asctime)s %(levelname)s %(name)s - %(message)s"
)
# 模块名 - 级别(已上色) - 消息 - 时间
formatter = logging.Formatter("%(name)s - %(levelname)s - %(message)s - %(asctime)s")
handler.setFormatter(formatter)
_root_logger.addHandler(handler)
# 从配置文件Config读取日志级别默认 INFO