温馨提示×

ubuntu java日志如何分析

小樊
43
2026-10-12 07:22:21
栏目: 编程语言

在 Ubuntu 上分析 Java 日志,通常分为日志来源确认 → 日志查看 → 问题定位 → 工具辅助分析几个步骤。下面给你一套实用思路。


一、先确认 Java 日志在哪里

常见 Java 应用日志位置:

  1. 应用自身日志

    • Spring Boot:
      • ./logs/
      • nohup.out
      • 自定义 logback.xml / log4j2.xml 路径
    • Tomcat:
      • /var/log/tomcat9/
      • catalina.out
    • 普通 Java 程序:
      • nohup java -jar app.jar > app.log 2>&1 &
  2. 系统日志

    journalctl -u your-service-name
    

    或

    /var/log/syslog
    
  3. JVM 崩溃日志

    • hs_err_pidXXXX.log
    • 通常在当前目录或 -XX:ErrorFile=/path

二、基础日志查看命令(必会)

1. 实时查看日志

tail -f app.log

2. 查看错误

grep -i "error\|exception" app.log

3. 按时间范围

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

4. 统计异常数量

grep -c "Exception" app.log

三、Java 日志常见重点内容

分析时优先看:

  • ERROR / FATAL
  • Exception + Caused by
  • OutOfMemoryError
  • StackOverflowError
  • Timeout
  • Connection refused / reset
  • GC 日志(如果开启)

示例:

java.lang.OutOfMemoryError: Java heap space
Caused by: java.sql.SQLException: Connection timeout

四、结合 JVM 分析(进阶)

1. 查看 Java 进程

jps -l
top -p <pid>

2. 线程分析

jstack <pid> > thread.log

重点看:

  • BLOCKED
  • WAITING
  • 死锁提示

3. 内存分析

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

用工具分析:

  • Eclipse MAT
  • VisualVM

五、日志分析工具推荐

命令行

  • less
  • awk
  • grep
  • sed

可视化

  • ELK(Elasticsearch + Logstash + Kibana)
  • Grafana + Loki
  • Spring Boot Admin

六、典型问题排查流程(示例)

现象:接口变慢

  1. 看日志有没有 Timeout
  2. top 看 CPU
  3. jstack 看线程
  4. jmap 看内存
  5. 查数据库慢查询

七、建议你补充的信息

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

  • Java 版本
  • 应用类型(Spring Boot / Tomcat / 普通 jar)
  • 日志路径或示例日志
  • 具体问题(报错 / 性能 / 崩溃)

我可以直接帮你分析具体日志。

0 踩