温馨提示×

Ubuntu如何过滤Tomcat日志

小樊
40
2026-08-05 15:03:00
栏目: 智能运维

在 Ubuntu 上过滤 Tomcat 日志,通常取决于你想过滤什么内容以及日志类型。下面我按常见场景给你系统性的说明。


一、Tomcat 常见日志位置

默认路径(取决于安装方式):

  • apt 安装
    /var/log/tomcat9/
    
  • 手动安装(tar.gz)
    /opt/tomcat/logs/
    

常见日志文件:

  • catalina.out(最常用)
  • localhost.log
  • manager.log
  • host-manager.log
  • access_log.*.txt(访问日志)

二、实时过滤日志(最常用)

1️⃣ 实时查看并过滤(grep)

tail -f /opt/tomcat/logs/catalina.out | grep "ERROR"

✅ 只看错误日志

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

✅ 看错误和异常


2️⃣ 按时间过滤

Tomcat 日志一般带时间戳,例如:

2026-01-21 10:30:12
grep "2026-01-21 10:" catalina.out

3️⃣ 过滤某个接口 / URL / 类

grep "LoginController" catalina.out
grep "/api/login" catalina.out

三、过滤访问日志(Access Log)

1️⃣ 查看某个 IP

grep "192.168.1.100" access_log.2026-01-21.txt

2️⃣ 查看 500 / 404 错误

grep " 500 " access_log.*.txt
grep " 404 " access_log.*.txt

四、按级别过滤(INFO / WARN / ERROR)

grep "ERROR" catalina.out
grep -v "INFO" catalina.out | less

-v 表示排除


五、分页查看(防止刷屏)

grep "Exception" catalina.out | less

快捷键:

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

六、按时间段过滤(适合排查问题)

1️⃣ 使用 sed(精确)

sed -n '/2026-01-21 10:00/,/2026-01-21 10:10/p' catalina.out

2️⃣ 使用 awk

awk '/2026-01-21 10:/' catalina.out

七、过滤多个条件(AND / OR)

OR

grep -E "NullPointerException|OutOfMemoryError" catalina.out

AND(管道)

grep "UserService" catalina.out | grep "ERROR"

八、只显示关键信息(去噪)

grep "ERROR" catalina.out | cut -d' ' -f1-4

九、Tomcat 日志太大怎么办?

1️⃣ 查看日志大小

du -h /opt/tomcat/logs/catalina.out

2️⃣ 清空日志(不删文件)

: > /opt/tomcat/logs/catalina.out

⚠️ 生产环境慎用


十、推荐组合(实战)

✅ 排查线上异常:

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

✅ 查某时间段异常:

sed -n '/2026-01-21 10:00/,/2026-01-21 10:10/p' catalina.out | grep Exception

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

  • Tomcat 版本
  • 日志格式
  • 具体想过滤什么(异常 / 某个接口 / 某个用户)

我可以帮你写精准过滤命令

0