温馨提示×

如何过滤debian tomcat日志

小樊
35
2026-09-10 07:04:15
栏目: 智能运维

在 Debian 上运行的 Tomcat,日志通常包括以下几类:

  • catalina.out(标准输出/错误)
  • catalina.log / localhost.log / host-manager.log / manager.log(按日期滚动)
  • access log(如 localhost_access_log.*.txt

下面按常见需求介绍“过滤 Tomcat 日志”的方法。


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

1. 按关键字过滤(如 ERROR)

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

忽略大小写:

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

2. 排除某些日志

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

3. 多条件过滤

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

二、过滤历史日志文件

1. 查找某时间段错误

grep "ERROR" /var/log/tomcat9/catalina.out

2. 按日期过滤

grep "2024-01-15" /var/log/tomcat9/catalina.out

3. 显示上下文(报错前后内容)

grep -A 10 -B 5 ERROR /var/log/tomcat9/catalina.out

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

Access log 一般在:

/var/log/tomcat9/localhost_access_log.*.txt

1. 只看 500 错误

grep " 500 " /var/log/tomcat9/localhost_access_log.*.txt

2. 只看某个 IP

grep "192.168.1.100" /var/log/tomcat9/localhost_access_log.*.txt

3. 只看 POST 请求

grep "POST" /var/log/tomcat9/localhost_access_log.*.txt

四、使用 journalctl(systemd 方式)

如果是 systemd 管理的 Tomcat:

journalctl -u tomcat9 -f

过滤错误:

journalctl -u tomcat9 | grep ERROR

按时间:

journalctl -u tomcat9 --since "2024-01-15 10:00"

五、在 Tomcat 配置层面“过滤日志”

1. 修改日志级别(推荐)

编辑:

/etc/tomcat9/logging.properties

示例(只记录 WARNING 以上):

org.apache.catalina.level = WARNING

2. 禁用 catalina.out(不推荐但可行)

bin/catalina.sh 中修改:

CATALINA_OUT=/dev/null

六、日志切割与清理(防止过大)

Debian 默认使用 logrotate

/etc/logrotate.d/tomcat9

可配置保留天数、压缩等。


七、常用组合示例

查看实时异常:

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

只关注某接口:

tail -f /var/log/tomcat9/localhost_access_log.*.txt | grep "/api/login"

如果你能说明:

  • Tomcat 版本(8/9/10)
  • 想过滤的是 应用日志 / 访问日志 / 系统日志
  • 是想 实时看 还是 分析历史

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

0