温馨提示×

centos怎样过滤java日志

小樊
56
2026-09-03 01:30:23
栏目: 编程语言

在 CentOS 上“过滤 Java 日志”通常有几种常见场景,下面按使用方式给你总结,基本都适用。


一、直接用 grep 过滤日志文件

最常见、最简单的方式。

1. 按关键字过滤

grep "ERROR" app.log

2. 忽略大小写

grep -i "exception" app.log

3. 显示行号

grep -n "NullPointerException" app.log

4. 过滤多个关键字(或)

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

5. 排除某些日志

grep -v "DEBUG" app.log

6. 按时间过滤(如今天)

grep "2026-01-15" app.log

二、实时查看并过滤(tail + grep)

1. 实时看 ERROR 日志

tail -f app.log | grep "ERROR"

2. 实时看多种异常

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

3. 高亮显示

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

三、按 Java 异常栈过滤(多行日志)

Java 异常通常是多行,普通 grep 不够用。

方法 1:使用 grep -A(显示后续行)

grep -A 20 "Exception" app.log

方法 2:使用 awk(推荐)

awk '/Exception/{print; for(i=0;i<15;i++){getline; print}}' app.log

方法 3:使用 less(交互式)

less app.log

然后在里面输入:

/Exception

四、如果用了 logrotate / 多文件

过滤所有日志文件

grep "ERROR" /var/log/java/*.log

包括压缩日志

zgrep "ERROR" /var/log/java/*.log.gz

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

查看并过滤

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

实时过滤

journalctl -u your-java-service -f | grep "Exception"

六、进阶(日志量大时)

  • ELK / Grafana Loki:适合生产环境
  • grep + awk + sed:适合临时分析
  • 日志级别控制(logback / log4j):减少噪音

如果你能告诉我:

  • Java 日志是 文件 / docker / systemd
  • 想过滤的是 ERROR、某个用户、某个接口、异常栈

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

0 踩