在 CentOS 上,“Java 日志”通常分为几类,不同来源解读方式不同。下面按常见场景给你一个清晰、实用的解读指南。
一般是:
log4j / logback / slf4j/var/log/xxx/
/opt/xxx/logs/
~/logs/
示例:
2024-01-12 10:23:45 ERROR [http-nio-8080-exec-3] c.x.UserService - 用户不存在
java.lang.NullPointerException
✅ 解读重点:
路径示例:
/var/log/tomcat/
/opt/tomcat/logs/
常见文件:
catalina.out(最重要)localhost.logaccess_logSEVERE: Servlet.service() for servlet [xxx] threw exception
✅ 重点看:
SEVERE = 严重错误Caused by 后面的根因如果 Java 是用 systemctl 启动的:
journalctl -u your-java-service
或实时看:
journalctl -u your-java-service -f
✅ 优点:
如:
示例(GC):
[GC (Allocation Failure) 1024M->512M(2048M), 0.123456 secs]
崩溃文件:
hs_err_pid12345.log
✅ 重点看:
Problematic frameSIGSEGVps -ef | grep java
看:
-Dlog.path-Dlogging.file优先级(从高到低):
FATAL / ERROR / SEVERE
WARN
INFO
DEBUG
不要只看第一行异常,要看:
Caused by: xxx
或者最后是:
at com.xxx.ClassName.method(FileName.java:123)
tail -f app.log
grep ERROR app.log
grep -A 20 "NullPointerException" app.log
| 日志内容 | 含义 |
|---|---|
| OutOfMemoryError | 内存不足 |
| StackOverflowError | 递归过深 |
| ClassNotFoundException | 缺 jar 包 |
| Connection refused | 服务/端口没开 |
| Timeout | 网络或数据库慢 |
| Permission denied | 文件/目录权限问题 |
getenforce
firewall-cmd --list-all
你可以直接发:
我可以逐行帮你解读。