温馨提示×

如何过滤tomcat日志信息

小樊
43
2026-08-20 15:34:38
栏目: 智能运维

过滤 Tomcat 日志信息,通常取决于你想过滤什么内容、在什么阶段过滤。下面按常见场景给你一套实用方案,从简单到进阶。


一、查看时过滤(最常用)

1️⃣ 用 grep 过滤日志内容

# 查看 catalina.out 中包含 ERROR 的行
grep "ERROR" logs/catalina.out

# 查看某个时间段的日志
grep "2025-01-20 10:" logs/catalina.out

# 排除某些日志
grep -v "DEBUG" logs/catalina.out

# 实时查看并过滤
tail -f logs/catalina.out | grep "Exception"

✅ 适合:临时排查问题


二、按日志级别过滤(推荐)

2️⃣ 修改 logging.properties(Tomcat 自带日志)

Tomcat 使用 JUL(java.util.logging)

文件位置:

conf/logging.properties

示例:只输出 WARNING 及以上

.level= WARNING

catalina.org.apache.juli.AsyncFileHandler.level = WARNING
localhost.org.apache.juli.AsyncFileHandler.level = WARNING

常见级别(从低到高):

ALL < FINEST < FINER < FINE < INFO < WARNING < SEVERE

✅ 优点:不丢日志,只控制输出级别
✅ 适合:生产环境


三、使用 Log4j / Logback 过滤(最常见)

3️⃣ Log4j2 示例(推荐)

只输出 ERROR 日志

<Logger name="org.apache" level="error" additivity="false">
    <AppenderRef ref="Console"/>
</Logger>

过滤指定包

<Logger name="org.springframework" level="warn"/>
<Logger name="com.xxx" level="debug"/>

4️⃣ Logback 示例

<logger name="org.apache" level="ERROR"/>
<logger name="com.xxx" level="INFO"/>

✅ 适合:Spring Boot / 大型项目


四、过滤并拆分日志(按类型)

5️⃣ 按级别输出到不同文件

Log4j2 示例

<RollingFile name="ErrorFile" fileName="logs/error.log">
    <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
</RollingFile>

五、Tomcat 访问日志过滤(AccessLog)

6️⃣ 过滤访问日志(conf/server.xml)

<Valve className="org.apache.catalina.valves.AccessLogValve"
       pattern="%h %l %u %t "%r" %s %b"
       directory="logs"
       prefix="localhost_access_log"
       suffix=".txt"
       conditionIf="ignore"
/>

或在代码中设置请求属性:

request.setAttribute("ignore", "true");

✅ 适合:屏蔽健康检查、监控请求


六、按大小 / 时间清理日志(防止爆炸)

7️⃣ 使用 cronolog / logrotate

logs/catalina.out {
    daily
    rotate 7
    missingok
    notifempty
}

七、常见需求速查表

需求 推荐方式
临时查看错误 grep ERROR
控制日志级别 logging.properties
Spring 项目 Log4j / Logback
去掉 DEBUG 调高日志级别
屏蔽访问日志 AccessLogValve
日志太大 按大小/时间滚动

八、如果你愿意,我可以帮你:

  • ✅ 给你一份生产级 Tomcat 日志配置
  • ✅ 针对 Spring Boot + Tomcat 定制方案
  • ✅ 分析你现在的 logging.propertieslog4j.xml
  • ✅ 解决 catalina.out 无限增长 问题

你可以直接贴出:

  • Tomcat 版本
  • 是否使用 Spring Boot
  • 想过滤的日志示例

0