在企业级Django应用开发中,日志管理是确保系统可观测性和问题追踪的关键环节。本文将介绍一套完整的日志存储策略,包括配置、轮转和集中化处理。
基础配置
首先,在settings.py中配置基础日志设置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {message}',
'style': '{',
},
},
'handlers': {
'file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/django/app.log',
'maxBytes': 1024*1024*5, # 5MB
'backupCount': 5,
'formatter': 'verbose',
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple',
},
},
'root': {
'handlers': ['file', 'console'],
'level': 'INFO',
},
}
企业级优化策略
- 日志轮转:使用
RotatingFileHandler控制文件大小,避免单个文件过大 - 分级存储:不同级别日志写入不同文件或系统
- 集中化处理:生产环境建议集成ELK或Splunk进行统一收集
复现步骤
- 在项目中添加上述配置到settings.py
- 启动Django应用
- 执行业务逻辑产生日志
- 检查
/var/log/django/app.log文件
该方案确保了日志的可维护性和可追溯性,是企业级应用的标准实践。

讨论