温馨提示×

怎样过滤ubuntu tomcat日志

小樊
40
2026-09-06 16:36:04
栏目: 智能运维

在 Ubuntu 上运行 Tomcat 时,常见的日志位置和管理方式如下,你可以根据**“想过滤什么”**来选择方法。


一、Tomcat 日志文件位置(Ubuntu)

通常位于:

/var/log/tomcat9/        # Tomcat 9(常见)
/var/log/tomcat/         # 通用

常见日志文件:

  • catalina.out:主输出日志(最常用)
  • catalina.YYYY-MM-DD.log
  • localhost.YYYY-MM-DD.log
  • localhost_access_log.YYYY-MM-DD.txt(访问日志)

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

1️⃣ 只看 ERROR 级别日志

tail -f /var/log/tomcat9/catalina.out | grep ERROR

只看异常(异常堆栈):

tail -f /var/log/tomcat9/catalina.out | grep -A 20 Exception

2️⃣ 过滤某个关键字(如接口名、用户ID)

tail -f /var/log/tomcat9/catalina.out | grep "login"

多个关键字(或关系):

tail -f /var/log/tomcat9/catalina.out | grep -E "ERROR|WARN|Exception"

3️⃣ 排除某些日志(不显示)

tail -f /var/log/tomcat9/catalina.out | grep -v "HealthCheck"

三、从历史日志中过滤

1️⃣ 查找某天的 ERROR

grep ERROR /var/log/tomcat9/catalina.2026-01-21.log

2️⃣ 按时间范围过滤

grep "21-Jan-2026 10:" /var/log/tomcat9/catalina.out

四、访问日志过滤(access log)

1️⃣ 只看 500 错误

grep " 500 " /var/log/tomcat9/localhost_access_log.2026-01-21.txt

2️⃣ 只看某个接口

grep "/api/user" /var/log/tomcat9/localhost_access_log.2026-01-21.txt

3️⃣ 统计访问最多的 IP

awk '{print $1}' localhost_access_log.*.txt | sort | uniq -c | sort -nr | head

五、按日志级别过滤(logging.properties)

如果你希望 Tomcat 本身少打日志

编辑:

/etc/tomcat9/logging.properties

示例(只记录 WARNING 及以上):

org.apache.catalina.level = WARNING

修改后重启:

systemctl restart tomcat9

六、使用 logrotate 防止日志过大

Ubuntu 一般已自动配置:

/etc/logrotate.d/tomcat9

可手动测试:

logrotate -d /etc/logrotate.d/tomcat9

七、推荐组合(生产环境)

tail -f /var/log/tomcat9/catalina.out | grep -E "ERROR|Exception" --color=auto

如果你能告诉我:

  • Tomcat 版本
  • 日志类型(catalina / access / 应用日志)
  • 想过滤什么(错误 / 接口 / 用户 / 时间)

我可以给你更精确的命令或配置方案

0