在 CentOS 上定位 Java 日志 通常分三步:找到日志在哪 → 看日志内容 → 结合异常定位问题。下面按实战方式给你一个完整思路。
大多数 Java 应用(Spring Boot、Dubbo、自研服务)都会自己写日志:
# 常见目录
/opt/app/logs/
/data/logs/
/var/log/
/home/xxx/logs/
搜索方式:
find / -name "*.log" 2>/dev/null | grep -E "app|service|spring"
Spring Boot 默认或常见配置:
application.log
logs/app.log
logs/spring.log
如果你知道 jar 包位置:
ps -ef | grep java
然后进入该目录:
ls -lh /path/to/app/
如果是 systemd 服务:
journalctl -u your-service-name -f
查看服务名:
systemctl list-units | grep java
/opt/tomcat/logs/catalina.out
/opt/tomcat/logs/localhost.log
查看:
tail -f /opt/tomcat/logs/catalina.out
tail -n 500 app.log | grep -i "error\|exception\|fail"
sed -n '/2026-01-20 14:00/,/2026-01-20 15:00/p' app.log
如果应用还活着:
jstack PID > stack.txt
分析:
grep -A 20 "BLOCKED\|WAITING\|Deadlock" stack.txt
jps -l
ps -ef | grep java
ps -ef | grep java
重点看:
-Dlogging.path=
-Dlog.home=
-XX:HeapDumpPath=
| 问题类型 | 重点日志 |
|---|---|
| 启动失败 | error / exception / main |
| OOM | java.lang.OutOfMemoryError |
| CPU 高 | 配合 top -Hp + jstack |
| 请求慢 | 接口耗时、DB 日志 |
| 线程死锁 | jstack |
| 磁盘满 | No space left on device |
# 实时查看
tail -f app.log
# 统计错误数量
grep -c "Exception" app.log
# 查看大文件
less app.log
# 解压日志
tar -zxvf logs.tar.gz
你可以把下面信息发我(脱敏即可):
我可以 直接帮你判断是哪一类问题 + 下一步怎么查 ✅