在 CentOS 上排查 Java 应用日志和错误,通常可以按下面几个步骤进行。
/var/log/xxx/logs//opt/app/logs/app.log/var/log/messages/var/log/securejournalctl -u your-service-name
systemctl status java-app
journalctl -u java-app -f
重点看:
Exception in thread "main"ClassNotFoundExceptionNoClassDefFoundErrorUnsupportedClassVersionError(JDK 版本不对)示例:
java -version
确认 JDK 版本是否匹配。
常见关键字:
OutOfMemoryErrorStackOverflowErrorSQLExceptionTimeoutExceptionNullPointerExceptionjava \
-Xloggc:/var/log/app/gc.log \
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-jar app.jar
如果出现:
java.lang.OutOfMemoryError: Java heap space
可加:
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/log/app/heap.hprof
用工具分析:
tail -f /var/log/app/app.log
grep -i error /var/log/app/app.log
grep -i exception /var/log/app/app.log
ps -ef | grep java
top
jps
jstack <pid> > thread.txt
或:
top -Hp <pid>
把线程 ID 转成 16 进制,在 jstack 中找。
Permission denied
解决:
chown -R appuser:appuser /var/log/app
locale
设置:
export LANG=zh_CN.UTF-8
firewall-cmd --list-ports
netstat -tunlp | grep java
如果你能贴一段 具体报错日志 或说明是 启动失败 / 运行报错 / CPU 高 / 内存满,我可以帮你更精准地分析。