IceCMS日志系统:系统监控与问题排查指南
日志系统基础
日志(Log)是系统运行状态的记录文件,包含用户操作、系统错误、性能数据等关键信息。IceCMS采用分层日志架构,覆盖后端服务、数据库交互及前端异常捕获,通过Docker容器化部署实现日志集中管理。基础概念:
- 日志级别:ERROR(错误)、WARN(警告)、INFO(信息)、DEBUG(调试)从高到低排列
- 输出方式:控制台打印与文件存储双模式
- 轮转策略:按大小(默认50MB)与时间(每日)自动切割归档
核心配置文件位置:
- 后端日志配置:application.yml
- Docker日志驱动:docker-compose.yml
日志配置指南
基础配置启用
默认配置下MyBatis日志输出被注释,需修改application.yml第22行启用:
# 取消此行注释启用SQL日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
Docker部署日志优化
在docker-compose.yml中添加日志驱动配置,限制单文件大小与保留天数:
services:
icecms-fullstack:
logging:
driver: "json-file"
options:
max-size: "50m"
max-file: "7"
日志监控方法
实时查看容器日志
通过Docker命令监控运行中的服务日志:
# 查看后端服务实时日志
docker logs -f icecms-fullstack --tail 100
# 查看数据库交互日志
docker logs -f icecms-sql
日志文件位置
容器内日志存储路径:
- 应用日志:
/app/logs/ - Nginx访问日志:
/var/log/nginx/access.log - 数据库慢查询日志:
/var/lib/mysql/slow.log
问题排查实践
常见错误案例分析
| 错误类型 | 特征日志片段 | 排查方向 |
|---|---|---|
| 数据库连接失败 | Could not create connection to database server | 检查application.yml中数据库连接参数 |
| 权限校验失败 | AccessDeniedException: Invalid token | 验证JWT密钥配置或用户Token有效期 |
| 文件上传失败 | MaxUploadSizeExceededException | 调整application.yml中multipart配置 |
高级排查工具
利用容器exec功能进入服务内部调试:
# 进入后端容器
docker exec -it icecms-fullstack /bin/bash
# 查看最近错误日志
grep -r "ERROR" /app/logs/ | tail -n 20
日志分析最佳实践
建议每日关注三个关键指标:
- ERROR级别日志出现频率(阈值:单日不超过10条)
- SQL执行耗时(慢查询阈值:超过500ms)
- 接口响应时间(95%请求应<300ms)
通过定期检查API文档中的监控接口,可获取日志统计可视化数据。系统异常时优先检查最近修改的配置文件与容器状态,重大故障可下载完整日志包提交技术支持。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



