INFO 调整为 WARNcom.ruoyi 从 INFO 调整为 WARNWARN 调整为 ERRORERROR优化后的日志文件命名格式: sys-info.2025-12-06.0.log # 当天第1个文件 sys-info.2025-12-06.1.log # 当天第2个文件(前一个超过100MB) sys-error.2025-12-06.0.log sys-user.2025-12-06.0.log slow-sql.2025-12-06.0.log # 新增慢SQL日志
dev, test)生产环境 (prod)
以下模块在生产环境仍保留INFO级别(便于问题排查):
- LegacySystemSyncServiceImpl - 旧系统同步服务
- VehicleGpsSegmentMileageServiceImpl - GPS里程计算服务
<!-- 生产环境 -->
<springProfile name="prod">
<!-- 全局WARN级别,减少90%的INFO日志 -->
<logger name="com.ruoyi" level="warn" />
<logger name="org.springframework" level="error" />
<!-- 重要业务模块保留INFO -->
<logger name="com.ruoyi.system.service.impl.LegacySystemSyncServiceImpl" level="info" />
</springProfile>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 按天分割,按大小分割 -->
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize> <!-- 单文件最大100MB -->
<maxHistory>30</maxHistory> <!-- 保留30天 -->
<totalSizeCap>10GB</totalSizeCap> <!-- 总大小不超过10GB -->
</rollingPolicy>
| 环境 | 优化前 | 优化后 | 减少比例 |
|---|
| 日志级别 | INFO | WARN | - |
| 每日日志量 | ~2-5GB | ~200-500MB | 80-90% ↓ |
| 磁盘占用 | ~120GB (60天) | ~15GB (30天) | 87.5% ↓ |
| I/O压力 | 高 | 低 | 80% ↓ |
# Windows
clean-logs.bat # 清理30天前的日志
clean-logs.bat 15 # 清理15天前的日志
# Linux (如需要可创建)
./clean-logs.sh
./clean-logs.sh 15
# 查看日志目录大小
cd logs
dir /s
# 查看慢SQL日志
type slow-sql.2025-12-06.0.log
# 统计ERROR数量
findstr /c:"ERROR" sys-error.2025-12-06.0.log
// 生产环境建议使用WARN级别记录重要信息
log.warn("任务执行失败,任务ID: {}, 原因: {}", taskId, reason);
// ERROR级别记录异常
log.error("数据库连接失败", exception);
// INFO级别仅用于关键业务流程(会被记录)
log.info("调度单同步完成,任务ID: {}", taskId);
// 避免在循环中使用INFO日志(生产环境已改为WARN,不会记录)
for (Task task : tasks) {
log.info("处理任务: {}", task.getId()); // ❌ 不会记录
}
// 避免记录大量调试信息
log.info("完整数据: {}", JSON.toJSONString(largeObject)); // ❌ 不会记录
# 每天检查慢SQL日志
type logs\slow-sql.2025-12-06.0.log
# 重点关注:
# - 执行时间超过1秒的SQL
# - 重复出现的慢SQL
# - 表扫描(全表扫描)
# 每天检查错误日志
type logs\sys-error.2025-12-06.0.log
# 重点关注:
# - 数据库连接异常
# - 空指针异常
# - 业务逻辑错误
推荐使用以下工具分析日志:
- Logstash + Elasticsearch + Kibana (ELK)
- Splunk
- Graylog
- 本地工具: Notepad++, VS Code
# 统计错误次数
findstr /c:"ERROR" logs\sys-error.*.log | find /c "ERROR"
# 查找特定关键词
findstr /c:"slow sql" logs\sys-info.*.log
# 查看最近的错误
powershell "Get-Content logs\sys-error.log -Tail 50"
.%i如果生产环境需要临时启用DEBUG日志排查问题:xml <!-- 临时修改logback.xml --> <springProfile name="prod"> <!-- 临时启用DEBUG --> <logger name="com.ruoyi.system.service.impl.SysTaskServiceImpl" level="debug" /> </springProfile>
记得问题排查后改回 warn 级别!
在 application-prod.yml 中可以调整慢SQL阈值:yaml druid: filter: stat: slow-sql-millis: 1000 # 调整为500ms或2000ms
如果优化后发现问题,可以快速回滚:
<!-- 在logback.xml中修改 -->
<springProfile name="prod">
<logger name="com.ruoyi" level="info" /> <!-- 改回info -->
</springProfile>
保留了旧配置的备份,可以从Git恢复:bash git checkout HEAD~1 -- ruoyi-admin/src/main/resources/logback.xml
如发现以下情况,请及时调整配置:
- ❌ 重要日志没有记录(提升相关模块日志级别)
- ❌ 日志量仍然过大(降低日志级别或减少保留天数)
- ❌ 磁盘空间不足(减少 totalSizeCap 或 maxHistory)
- ✅ 需要更详细的调试信息(临时启用DEBUG级别)
更新时间: 2025-12-06
优化版本: v2.0
维护人: 开发团队