CentOS 上 Java 日志错误的定位与处理
一、快速定位与通用排查
二、常见错误场景与处理对照表
| 场景 | 典型现象 | 快速检查 | 处理建议 |
|---|---|---|---|
| 配置文件未生效 | 日志未按预期输出或格式不对 | 配置是否在 classpath;文件名/路径是否正确;日志级别是否过低 | 将日志级别临时调到 DEBUG 验证;修正路径与文件名;确保依赖与配置文件在打包产物中 |
| 日志框架冲突/桥接错误 | 出现 “No appenders could be found …” 或重复输出 | 依赖中是否同时引入 slf4j + log4j/logback 且无冲突 | 保留一套实现,添加必要桥接(如 log4j-to-slf4j);排除冲突依赖 |
| 权限或路径错误 | 启动后无日志、或报 Permission denied | 目录/文件权限与属主;相对路径基准目录 | 赋权(如 chmod/chown);改用绝对路径;确认工作目录 |
| 磁盘满/系统资源不足 | 日志写入卡顿或中断 | df -h、dmesg、journalctl | 清理旧日志;扩容磁盘;降低日志级别或采样 |
| 中文乱码 | 日志中文显示为 � 或乱码 | 终端与文件编码不一致 | 在日志框架中显式设置 UTF-8 输出编码 |
| 进程崩溃无业务日志 | 进程突然退出,业务日志停在某一时刻 | 查找 hs_err_pid.log*;检查系统资源 | 依据崩溃类型调整 JVM 参数、修复 JNI/本地库问题;必要时升级 JDK 版本 |
三、关键操作命令清单
四、JVM 与系统层面的优化建议
五、最小可行排错流程