用途:为 Python 服务或脚本搭建日志体系,兼顾机器可读(便于 AI 分析)与运维可靠性,从最轻方案起步按需升级。
主要能力:提供决策启发式——单机少于 5 个服务且低于 1 事件/秒用轻量模式(print + JSONL);容器/无服务器用 stdout JSON 且不做文件轮转;需要 OTel 追踪用 structlog + OTel;CLI 工具用 loguru 或标准库 RotatingFileHandler。轻量模式采用双通道:print(flush=True) 交给 systemd journald 做运维日志,追加式 JSONL 文件做结构化遥测,可选 WAL 文件做崩溃恢复。含基于大小的轮转、语义字段参考(timestamp、level、component、operation、trace_id、metrics、error 等)、健康端点作为可观测性、以及 DuckDB、jq、journalctl、lnav、llm 等事后分析命令。
安全:主张令牌指纹(只记录令牌中段片段)而非正则脱敏,正则仅作纵深防御;避免记录完整密钥。
用法要点:loguru 配置 rotation、retention、compression;高吞吐(>10k 事件/秒)用 orjson.dumps().decode();异步 enqueue=True 时须 await logger.complete() 或 logger.remove() 以防丢日志;文件扩展名统一用 .jsonl。
限制与反模式:不要无界日志、不要记录完整密钥、少于 5 个低量服务不必引入 loguru/structlog、避免裸 except 与静默失败、OTel 服务不要用 UUID4 追踪 ID、小规模不必上 Prometheus/Grafana。资料未提供具体版本兼容范围与性能基准数据。