温馨提示×

CentOS Java日志怎么搜索

小樊
58
2026-07-20 16:40:14
栏目: 编程语言

CentOS 上搜索 Java 日志,常见做法取决于日志是 标准输出、文件日志还是容器日志。下面按场景给你一套实用方法。


一、先确认 Java 日志在哪

1️⃣ 常见 Java 日志位置

/var/log/
/opt/xxx/logs/
/home/xxx/logs/
/usr/local/xxx/logs/

如果是 Spring Boot

logs/application.log
logs/spring.log

如果是 Tomcat

/opt/tomcat/logs/catalina.out

二、最常用:grep 搜索日志

✅ 基本搜索

grep "关键字" app.log

✅ 忽略大小写

grep -i "error" app.log

✅ 显示行号

grep -n "NullPointerException" app.log

✅ 搜索多个关键字(AND)

grep "error" app.log | grep "order"

✅ 搜索多个关键字(OR)

grep -E "error|exception|fail" app.log

三、搜索最近日志(实时)

✅ 实时查看日志

tail -f app.log

✅ 实时过滤

tail -f app.log | grep "ERROR"

四、按时间范围搜索(非常常用)

✅ 查看今天日志

grep "2024-01-21" app.log

✅ 按时间段

grep "2024-01-21 10:" app.log

✅ 精确时间范围

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

五、搜索 Java 异常(重点)

✅ 搜索异常

grep -i "exception" app.log

✅ 显示异常上下文(前后 20 行)

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

✅ 搜索堆栈信息

grep -n "at com\." app.log

六、大日志文件处理(推荐)

✅ 分页查看

less app.log

less 中:

  • /关键字 搜索
  • n 下一个
  • N 上一个

七、如果是 systemd 启动的 Java 服务

✅ 查看服务日志

journalctl -u your-java-service.service

✅ 实时查看

journalctl -u your-java-service.service -f

✅ 按时间

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

八、Docker / Kubernetes 场景

✅ Docker

docker logs 容器ID | grep "ERROR"

✅ Kubernetes

kubectl logs pod名 | grep "ERROR"

九、实用组合示例(推荐收藏)

grep -i "error" app.log | tail -n 50
grep -n "OutOfMemoryError" app.log
find / -name "*.log" 2>/dev/null | xargs grep -l "NullPointerException"

十、建议的日志规范(避免以后难查)

  • 使用 logback / log4j2
  • 日志按 日期 + 级别 滚动
  • 统一日志目录
  • 异常必须打印完整堆栈

如果你愿意,可以把:

  • Java 应用类型(Spring Boot / Tomcat / 自研)
  • 启动方式(systemd / Docker / 手动)
  • 日志格式示例

发给我,我可以给你 更精准的搜索命令

0