smtp: CLI 标准化补完(--host/--log-level/--instance + log_client 级别过滤)

- argparse 新增 --host(别名 --addr)、--log-level、--instance
- --log-level 经 logs.set_log_level() 真正订阅日志过滤
- log_client.py: 新增 _LOG_LEVELS/set_log_level()/_normalize_level() + push() 级别过滤
- 启动日志打印 instance/log-level 及配置来源说明
- services.yaml: smtp 声明 --instance 和 --log-level
- 注: SMTP 账号走 .env/ENV(密码不进 CLI),与全项目约定一致
This commit is contained in:
qing committed 2026-08-10 12:05:46 +08:00
1 parent d0ee948339
commit 9fc3542771
3 files changed
+39 -2

No files matched your search

+12 -1
View File
@@ -303,12 +303,23 @@ if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(description="smtp — pymsg 邮箱验证码服务")
parser.add_argument("--addr", default="127.0.0.1", help="监听地址")
parser.add_argument("--addr", "--host", dest="addr", default="127.0.0.1",
help="监听地址(--host 与 --addr 等价)")
parser.add_argument("--port", type=int, default=8008, help="监听端口")
parser.add_argument("--workers", type=int, default=4,
help="回调并发线程数(0=同步串行模式)")
parser.add_argument("--log-level", default="info",
choices=["debug", "info", "warn", "error"],
help="日志级别(默认 info)")
parser.add_argument("--instance", default="smtp",
help="实例名(注册中心用,默认 smtp)")
args = parser.parse_args()
# 应用日志级别过滤(低于阈值的日志不进队列)
logs.set_log_level(args.log_level)
print(f"[smtp] instance={args.instance} log-level={args.log_level}")
print(f"[smtp] 配置来源: .env / ENV > 默认值(SMTP 账号不通过 CLI 传递)")
server = SmtpServer(args.addr, args.port, workers=args.workers)
try:
server.start()