温馨提示×

centos怎样抓取java日志

小樊
39
2026-09-15 05:49:03
栏目: 编程语言

在 CentOS 上“抓取 Java 日志”通常分几种场景:实时查看日志、过滤关键日志、导出日志文件、或者抓取 JVM/线程级日志。下面按常见用法给你整理一份实用指南。


一、查看 Java 应用日志(最常见)

1. 实时查看日志(tail)

tail -f /path/to/app.log

如果是 Spring Boot:

tail -f /var/log/myapp/myapp.log

2. 查看最近 N 行

tail -n 200 /path/to/app.log

3. 从头查看日志

less /path/to/app.log

在 less 中:

  • /ERROR 搜索
  • Shift + F 实时跟踪

二、过滤 Java 日志(按关键字)

1. 过滤 ERROR / Exception

grep ERROR /path/to/app.log
grep Exception /path/to/app.log

2. 实时过滤

tail -f /path/to/app.log | grep ERROR

3. 按时间范围抓日志

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

三、抓取 Java 进程自身日志(stdout / stderr)

如果 Java 是前台启动:

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

查看:

tail -f app.out.log

四、抓取 JVM / 线程 / 堆栈日志(排错用)

1. 查看 Java 进程

jps -l

2. 抓取线程堆栈(死锁/卡死)

jstack <pid> > thread_dump.log

3. 抓取堆内存快照

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

4. 查看 GC 日志

如果启动参数中有:

-Xloggc:/var/log/gc.log

查看:

tail -f /var/log/gc.log

五、使用 journalctl(systemd 启动的 Java 服务)

如果是 systemd 服务:

journalctl -u myapp.service -f

查看错误:

journalctl -u myapp.service | grep ERROR

六、抓取日志并打包(运维常用)

grep ERROR app.log > error.log
tar czf java_logs.tar.gz app.log error.log

七、推荐日志方案(长期)

  • Logback / Log4j2 + 按天滚动
  • 日志目录:/var/log/<app>/
  • 配合 logrotate

如果你能告诉我:

  • Java 是 jar 包 / tomcat / systemd
  • 日志是 业务日志还是 JVM 日志
  • 目的是 排查问题还是采集日志

我可以给你更精确的命令或脚本。

0 踩