日志配置最佳实践
日志级别控制
使用DEBUG
/INFO
/WARN
/ERROR
等级别分类日志,便于排查问题
📌 示例:logger.setLevel(logging.DEBUG)
日志格式定制
包含时间戳、日志级别、模块名和自定义消息字段
📝 格式模板:[%(asctime)s] [%(levelname)s] [%(module)s] - %(message)s
日志输出目标
支持控制台、文件、远程服务器等多渠道输出
✅ 推荐方案:- 控制台:
logging.StreamHandler()
- 文件:
logging.FileHandler('/var/log/app.log')
- 集中管理:查看日志收集方案指南
- 控制台:
日志存储与分析
本地存储:使用
RotatingFileHandler
实现日志轮转
📁 图片:日志文件结构示例云存储集成:支持 AWS CloudWatch、阿里云 SLS 等服务
🌍 图片:云日志平台对比实时分析:结合 ELK(Elasticsearch, Logstash, Kibana)堆栈
📊 图片:ELK架构图
安全与性能优化
敏感信息过滤:使用
Filter
类过滤密码、token 等字段
🔒 示例:class SensitiveFilter(logging.Filter): def filter(self, record): record.msg = record.msg.replace("secret_key", "****") return True
日志压缩传输:启用 Gzip 压缩减少网络带宽占用
📦 图片:日志压缩流程异步写入:通过
QueueHandler
实现异步日志写入
⚡ 图片:异步处理架构