温馨提示×

如何过滤CentOS Java日志

小樊
38
2026-08-30 07:23:02
栏目: 编程语言

CentOS 上过滤 Java 日志,常见场景有:实时查看、按关键字过滤、按时间范围、按级别、按日志文件 等。下面按最常用方式给你一个完整指南。


一、常用 Java 日志位置

一般 Java 应用日志可能在:

/var/log/
/opt/app/logs/
/home/app/logs/

常见文件名:

app.log
catalina.out        # Tomcat
spring.log
server.log

二、基础过滤(最常用)

1️⃣ 查看日志并过滤关键字

grep "关键字" app.log

忽略大小写:

grep -i "error" app.log

显示行号:

grep -n "NullPointerException" app.log

2️⃣ 实时查看日志(强烈推荐)

tail -f app.log | grep "ERROR"

多个关键字(OR):

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

排除某些日志:

tail -f app.log | grep -v "INFO"

三、按日志级别过滤

示例日志

2025-01-21 10:00:01 INFO  Starting app
2025-01-21 10:00:02 ERROR Something wrong

过滤 ERROR

grep "ERROR" app.log

过滤 ERROR 和 WARN

grep -E "ERROR|WARN" app.log

四、按时间范围过滤

1️⃣ 按“今天”

grep "2025-01-21" app.log

2️⃣ 按时间段

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

五、过滤异常 / 堆栈信息(重点)

显示异常及上下文

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

六、大日志文件处理(性能优化)

1️⃣ 只看最后 1000 行

tail -n 1000 app.log | grep "ERROR"

2️⃣ 分页查看

less app.log

less 中:

  • /ERROR 搜索
  • n 下一个
  • q 退出

七、Tomcat(catalina.out)专用

tail -f catalina.out | grep -E "ERROR|Exception"

按日期:

grep "2025-01-21" catalina.out

八、Spring Boot 日志过滤

1️⃣ 过滤启动失败

grep -i "application run failed" app.log

2️⃣ 过滤端口占用

grep -i "port" app.log | grep -i "already"

九、日志太多?推荐组合用法 ✅

tail -n 5000 app.log | grep "ERROR" | less

或:

grep "ERROR" app.log > error.log

十、进阶(可选)

使用 awk 按字段过滤

awk '/ERROR/ {print $0}' app.log

按日志时间+级别

awk '$2 ~ /ERROR/ && $1 ~ /2025-01-21/' app.log

总结(速查表)

需求 命令
实时查看 tail -f app.log
过滤异常 grep Exception app.log
实时过滤 tail -f app.log | grep ERROR
上下文 grep -A 20 Exception
时间过滤 grep "2025-01-21"

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

  • ✅ Java 应用类型(Spring Boot / Tomcat / 普通 Java)
  • ✅ 日志格式示例
  • ✅ 想过滤什么(异常 / 接口 / 慢请求)

我可以帮你定制一条最精准的过滤命令

0