温馨提示×

CentOS Java日志怎么分析

小樊
53
2026-07-20 16:15:19
栏目: 编程语言

CentOS 上分析 Java 日志,通常可以从 日志位置、常见日志类型、分析思路、常用命令和工具 几个方面入手。下面给你一套比较实用的分析方法,适合生产环境排查问题。


一、Java 日志一般在哪?

1️⃣ 应用日志(最常见)

取决于你用的框架和配置:

类型 默认位置
Spring Boot logs/ 目录(如 application.log
Log4j / Logback 配置文件中指定(如 /var/log/app/
手动指定 -Dlogging.path-Dlog.home

常见路径:

/var/log/
/opt/app/logs/
~/logs/

2️⃣ Java 进程标准输出

如果 Java 进程是通过 nohup 启动的:

nohup java -jar app.jar > app.log 2>&1 &

日志在:

app.log

3️⃣ 系统日志(辅助)

/var/log/messages
/var/log/syslog
journalctl -xe

二、常见 Java 日志类型

1️⃣ 应用业务日志

  • INFO / WARN / ERROR
  • 接口调用、业务异常

2️⃣ GC 日志(非常重要)

JVM 垃圾回收情况:

-Xlog:gc*:file=gc.log

或老版本:

-XX:+PrintGCDetails
-XX:+PrintGCDateStamps

3️⃣ 线程堆栈(排查卡死)

  • jstack 生成
  • 通常在故障现场

三、常用分析命令(非常实用)

1️⃣ 实时查看日志

tail -f app.log

2️⃣ 查找 ERROR

grep -i error app.log
grep -i exception app.log

3️⃣ 查看某段时间日志

sed -n '/2026-01-20 10:00/,/2026-01-20 11:00/p' app.log

4️⃣ 统计异常数量

grep -c NullPointerException app.log

5️⃣ 查看 OOM / 内存问题

grep -i "OutOfMemoryError" app.log

四、Java 进程级分析(强烈推荐)

1️⃣ 查看 Java 进程

jps -l

2️⃣ 查看 JVM 参数

jinfo <pid>

3️⃣ 分析 GC

jstat -gc <pid> 1000 10

4️⃣ 线程分析(卡死、死锁)

jstack <pid> > stack.txt

重点看:

  • BLOCKED
  • Deadlock
  • 长时间 RUNNABLE

五、日志分析思路(实战顺序)

✅ 1. 先看有没有 ERROR / Exception

grep -n ERROR app.log | head -20

✅ 2. 看是否 OOM / GC 问题

grep -i "OutOfMemoryError" app.log
grep -i "GC pause" gc.log

✅ 3. 看是否线程卡死

jstack <pid>

✅ 4. 看系统资源

top
free -h
df -h

六、推荐工具(效率提升)

命令行

  • less
  • awk
  • grep
  • sed

可视化

  • ELK(Elasticsearch + Logstash + Kibana)
  • Grafana + Loki
  • Arthas(强烈推荐)

七、Arthas 快速排查(神器)

curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

常用命令:

dashboard
thread
watch
trace

八、你可以直接这样问我

如果你愿意,可以直接把:

  • 日志片段
  • 报错信息
  • jstack 输出

贴出来,我可以 直接帮你定位问题原因

需要我给你一份 Java 日志分析速查表 吗?

0