feat: colorize console logs by message category
This commit is contained in:
@@ -31,6 +31,17 @@ def _get_transfer_group(acc_id: str) -> str:
|
||||
# ========== 日志配置(轮转:按大小 10MB,保留 7 份)==========
|
||||
class _AnsiColorFormatter(logging.Formatter):
|
||||
RESET = "\033[0m"
|
||||
# 业务消息类型颜色(优先于 level)
|
||||
MESSAGE_COLOR_RULES = (
|
||||
("[PROMPT->AI", "\033[94m"), # bright blue
|
||||
("[THINK/", "\033[96m"), # bright cyan
|
||||
("[REPLY->CUSTOMER]", "\033[92m"), # bright green
|
||||
("Agent 回复", "\033[92m"), # bright green
|
||||
("[ACTIVITY]", "\033[95m"), # bright magenta
|
||||
("收到新消息", "\033[36m"), # cyan
|
||||
("发送成功", "\033[32m"), # green
|
||||
("防抖等待", "\033[93m"), # bright yellow
|
||||
)
|
||||
COLORS = {
|
||||
logging.DEBUG: "\033[36m", # cyan
|
||||
logging.INFO: "\033[32m", # green
|
||||
@@ -47,6 +58,10 @@ class _AnsiColorFormatter(logging.Formatter):
|
||||
msg = super().format(record)
|
||||
if not self.use_color:
|
||||
return msg
|
||||
raw_msg = record.getMessage()
|
||||
for key, color in self.MESSAGE_COLOR_RULES:
|
||||
if key in raw_msg:
|
||||
return f"{color}{msg}{self.RESET}"
|
||||
color = self.COLORS.get(record.levelno, "")
|
||||
if not color:
|
||||
return msg
|
||||
|
||||
Reference in New Issue
Block a user