温馨提示×

centos java日志怎么排查

小樊
42
2026-09-24 08:37:19
栏目: 编程语言

在 CentOS 上排查 Java 日志,一般可以从 日志位置、日志内容、运行环境、工具分析 几个层面来做。下面按实战顺序说明。


一、先确认 Java 应用在怎么运行

不同运行方式,日志位置不同:

ps -ef | grep java

常见情况:

  • 直接 java -jar
    • 日志可能在控制台或重定向文件
    • 如:nohup java -jar app.jar > app.log 2>&1 &
  • systemd 服务
    • 日志通常用 journalctl
  • Tomcat
    • logs/catalina.out
  • Docker
    • docker logs 容器名

二、常见 Java 日志位置(CentOS)

1. 应用日志

一般在:

/var/log/
/opt/应用名/logs/
~/logs/

2. Tomcat

/var/log/tomcat/
/usr/local/tomcat/logs/

重点看:

  • catalina.out
  • localhost.log
  • host-manager.log

3. systemd 服务

journalctl -u your-service.service -f

4. Docker

docker logs -f 容器名

三、Java 日志内容怎么看

1. 看异常(最重要)

搜索关键字:

grep -n "ERROR" app.log
grep -n "Exception" app.log

常见异常类型:

  • OutOfMemoryError → 内存问题
  • StackOverflowError → 死循环/递归
  • ClassNotFoundException → 包缺失
  • Connection refused → 服务未启动/端口错
  • Timeout → 网络或数据库慢

四、排查 CPU / 内存问题(Java 常见)

1. 查 Java 进程

top -c

找到高 CPU 的 PID

2. 查线程

top -Hp PID

3. 线程转十六进制

printf "%x\n" 线程ID

4. 打印线程栈

jstack PID | grep -A 30 0x线程ID

五、内存溢出(OOM)排查

1. 加 JVM 参数(很重要)

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/log/java/heapdump.hprof

2. 分析 dump

用工具:

  • Eclipse MAT
  • VisualVM
  • jhat(简单)

六、GC 日志(性能问题)

加参数:

-Xloggc:/var/log/java/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps

分析:

  • Full GC 频繁 → 内存不足
  • GC 时间长 → 停顿严重

七、网络 / 连接问题

netstat -tunlp | grep java
ss -tunlp

检查:

  • 端口是否监听
  • 防火墙
firewall-cmd --list-all

八、日志级别调整(临时)

如果是 logback / log4j:

  • logback.xml
  • 或运行时改(部分框架支持)

九、推荐排查顺序(实战)

  1. ps 确认进程
  2. 看应用日志(Exception / ERROR)
  3. top 看 CPU / 内存
  4. jstack 看线程
  5. OOM 看 heap dump
  6. 网络 / 配置 / 依赖

如果你愿意,可以告诉我:

  • CentOS 版本
  • Java 运行方式(jar / tomcat / docker)
  • 具体报错日志

我可以帮你精准定位问题

0