温馨提示×

centos java日志怎么检索

小樊
49
2026-09-06 06:07:37
栏目: 编程语言

在 CentOS 上检索 Java 日志,通常取决于日志的存放位置和日志框架。下面按常见场景给你一套实用方法。


一、先确认 Java 日志在哪里

常见位置:

  • /var/log/
  • 应用目录下的 logs/
  • tomcat/logs/
  • systemd 日志(如用 service 启动)

查看 Java 进程和日志路径:

ps -ef | grep java

二、最常用:用 Linux 命令检索日志

1️⃣ grep 检索关键字

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

带行号:

grep -n "Exception" app.log

忽略大小写:

grep -i "nullpointer" app.log

多个关键词(或):

grep -E "ERROR|Exception|Timeout" app.log

2️⃣ 实时查看日志(最常用)

tail -f app.log

实时过滤:

tail -f app.log | grep "ERROR"

3️⃣ 查看某时间段日志

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

4️⃣ 统计错误数量

grep -c "Exception" app.log

三、Java 堆栈 / 异常检索技巧

查看异常上下文(前后 20 行)

grep -A 20 -B 5 "NullPointerException" app.log

提取完整异常栈

awk '/Exception/{flag=1} flag{print} /at com/{c++} c>30{exit}' app.log

四、如果是 Tomcat

日志目录:

cd /usr/local/tomcat/logs

常见文件:

  • catalina.out(最重要)
  • localhost.log
  • host-manager.log

检索:

grep "ERROR" catalina.out
tail -f catalina.out

五、如果 Java 是用 systemd 启动

查看日志:

journalctl -u your-java-service

实时:

journalctl -u your-java-service -f

按时间:

journalctl --since "2026-01-21 10:00" --until "11:00"

六、日志框架相关(Logback / Log4j)

如果日志是 按天滚动(如 app-2026-01-21.log):

ls -lh logs/
grep "ERROR" logs/app-*.log

七、高效检索工具(可选)

  • less +F app.log(类似 tail -f)
  • zgrep(压缩日志)
zgrep "ERROR" app.log.2026-01-*.gz
  • lnav(日志专用查看器)
yum install lnav
lnav app.log

八、常见排查思路

  1. 先找 ERROR / Exception / Timeout
  2. 看异常发生时间
  3. 看前后业务日志
  4. 结合线程名(如 http-nio-8080)
  5. 关联 GC 日志(如有)

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

  • Java 应用类型(Spring Boot / Tomcat / 自研)
  • 日志路径或日志框架
  • 想查什么问题(报错 / 性能 / 接口慢)

我可以给你更精准的命令。

0 踩