温馨提示×

Java日志CentOS如何过滤

小樊
55
2026-08-04 06:02:42
栏目: 编程语言

CentOS 上过滤 Java 日志,常见有几种场景,下面按最常用 → 高级给你总结,基本一学就会。


一、最常见:用 grep 过滤日志文件

1️⃣ 过滤包含某个关键字(如 ERROR)

grep "ERROR" app.log

2️⃣ 忽略大小写

grep -i "error" app.log

3️⃣ 显示行号

grep -n "ERROR" app.log

4️⃣ 过滤多个关键字(AND)

grep "ERROR" app.log | grep "NullPointer"

5️⃣ 过滤多个关键字(OR)

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

二、实时查看日志(tail + grep)

实时查看日志并过滤

tail -f app.log | grep "ERROR"

忽略大小写

tail -f app.log | grep -i "error"

高亮显示

tail -f app.log | grep --color "ERROR"

三、按时间过滤日志(非常重要)

1️⃣ 过滤今天的日志

grep "2024-01-21" app.log

2️⃣ 过滤某个时间段

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

3️⃣ 获取最近 10 分钟日志(结合 sed

sed -n '/2024-01-21 10:1[0-9]/,/2024-01-21 10:2[0-9]/p' app.log

四、过滤 Java 异常堆栈

1️⃣ 过滤异常

grep -A 20 "Exception" app.log

2️⃣ 过滤 Caused by

grep -A 30 "Caused by" app.log

3️⃣ 过滤多个异常

grep -E "Exception|Error|Throwable" app.log

五、压缩日志过滤(.gz)

zgrep "ERROR" app.log.gz
zcat app.log.gz | grep "ERROR"

六、如果是 systemd 管理的 Java 服务

查看 Java 服务日志

journalctl -u your-java-service.service

过滤 ERROR

journalctl -u your-java-service.service | grep ERROR

实时查看

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

七、配合日志框架(高级)

1️⃣ Logback / Log4j2

如果你能改配置,可以只输出 ERROR:

<logger name="com.xxx" level="ERROR"/>

2️⃣ 按线程 / 类名过滤

grep "http-nio-8080" app.log

八、实用组合(强烈推荐)

✅ 查看最近 500 行错误日志

tail -n 500 app.log | grep ERROR

✅ 统计某类错误出现次数

grep "NullPointerException" app.log | wc -l

✅ 按分钟统计错误数量

grep "ERROR" app.log | cut -d: -f1-2 | sort | uniq -c

九、常见 Java 日志路径

类型 常见路径
Spring Boot logs/app.log
Tomcat logs/catalina.out
自定义 /var/log/xxx/xxx.log

如果你愿意,我可以:

  • ✅ 帮你写 一条精准过滤命令
  • ✅ 帮你分析 真实 Java 日志片段
  • ✅ 教你 百万行日志怎么快速定位问题

你现在的 Java 日志是 哪种类型 / 哪个框架

0