温馨提示×

centosjava日志怎么分析

小樊
37
2026-09-21 09:29:47
栏目: 编程语言

在 CentOS 上分析 Java 日志,通常分为日志位置确认 → 日志类型识别 → 分析工具与方法 → 常见问题定位几个步骤。下面给你一套实战向的总结。


一、先搞清楚 Java 日志在哪

1. 系统级 Java 日志

  • Tomcat

    /var/log/tomcat/
    /opt/tomcat/logs/
    catalina.out
    catalina.YYYY-MM-DD.log
    localhost_access_log.*
    
  • Spring Boot(jar 包)

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

    日志一般在:

    ./app.log
    ./logs/app.log
    
  • systemd 管理的服务

    journalctl -u your-java-service
    

二、Java 常见日志类型

类型 说明
stdout/stderr catalina.outnohup.out
log4j / logback application.log
GC 日志 -Xloggc:/path/gc.log
线程 dump jstack 生成
堆 dump jmap 生成

三、常用分析命令(CentOS 必备)

1. 实时查看

tail -f catalina.out
tail -100f app.log

2. 关键字搜索

grep -i "exception" app.log
grep -C 5 "OutOfMemoryError" catalina.out

3. 统计错误数量

grep -c "ERROR" app.log

4. 按时间筛选

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

四、Java 典型问题日志分析

1. OutOfMemoryError

日志特征:

java.lang.OutOfMemoryError: Java heap space

分析:

grep -A 20 "OutOfMemoryError" catalina.out

配合:

jmap -heap <pid>
jmap -dump:live,format=b,file=heap.hprof <pid>

2. 死锁 / 线程阻塞

jstack <pid> > thread.log
grep -A 30 "deadlock" thread.log

线程状态关注:

  • BLOCKED
  • WAITING
  • TIMED_WAITING

3. GC 频繁 / 性能差

GC 日志示例:

Full GC (Ergonomics) 1024M->900M

分析工具:

  • gcviewer
  • GCeasy(在线)

开启 GC 日志:

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

4. 接口慢 / 超时

日志中关注:

timeout
slow query
elapsed time

结合:

top -Hp <pid>

定位高 CPU 线程。


五、日志分析工具(推荐)

命令行

  • awk
  • sed
  • grep
  • less

可视化

  • ELK(Elasticsearch + Logstash + Kibana)
  • Graylog
  • Loki + Grafana

六、实战分析流程(建议)

  1. 明确现象(卡?崩?慢?)
  2. catalina.out / app.log
  3. 搜索 ERROR / Exception
  4. 必要时 jstack / jmap
  5. 看 GC 和系统资源(top, free -m

如果你愿意,可以把具体日志片段报错信息贴出来,我可以直接帮你定位问题。

0