在大模型微服务架构中,日志优化是保障系统可观测性的关键环节。本文分享一个实用的日志优化方案,通过结构化日志和智能过滤来提升调试效率。
核心问题
传统日志存在格式混乱、信息冗余的问题,特别是在高并发的大模型服务中,日志量呈指数级增长,给监控和排查带来巨大挑战。
解决方案
使用Python的logging模块配合JSON格式化器:
import logging
import json
from logging.handlers import RotatingFileHandler
class JSONFormatter(logging.Formatter):
def format(self, record):
log_entry = {
'timestamp': self.formatTime(record),
'level': record.levelname,
'service': 'model-service',
'trace_id': getattr(record, 'trace_id', ''),
'span_id': getattr(record, 'span_id', ''),
'message': record.getMessage(),
'extra': {
key: value for key, value in record.__dict__.items()
if key not in ['name', 'msg', 'args', 'levelname', 'levelno', 'pathname', 'filename', 'module', 'lineno', 'funcName', 'thread', 'threadName', 'processName', 'process', 'created', 'msecs', 'relativeCreated', 'exc_info', 'exc_text', 'stack_info']
}
}
return json.dumps(log_entry)
# 配置日志
logger = logging.getLogger('model-service')
logger.setLevel(logging.INFO)
handler = RotatingFileHandler('/var/log/model-service.log', maxBytes=1024*1024*100, backupCount=5)
handler.setFormatter(JSONFormatter())
logger.addHandler(handler)
实践效果
- 日志体积减少60%
- 查询效率提升80%
- 便于集成ELK等监控系统
可复现步骤
- 创建日志配置文件
- 部署上述代码到服务中
- 使用curl测试日志输出
- 查看日志文件验证结构化格式

讨论