温馨提示×

centos怎么过滤java日志

小樊
47
2026-09-27 06:45:00
栏目: 编程语言

在 CentOS 上“过滤 Java 日志”通常分几种场景,下面按最常见用法给你说明,你可以按需选。


一、实时查看并过滤日志(tail + grep)

1. 过滤包含某个关键字的日志

tail -f /var/log/app/app.log | grep "ERROR"

2. 过滤多个关键字(或关系)

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

3. 排除某些关键字(反向过滤)

tail -f app.log | grep -v "DEBUG"

4. 忽略大小写

tail -f app.log | grep -i "error"

二、过滤历史日志文件

1. 查找某关键字

grep "Exception" app.log

2. 显示行号

grep -n "NullPointer" app.log

3. 查看某时间段的日志(常见 Java 日志格式)

grep "2024-01-21 10:" app.log

4. 统计错误数量

grep -c "ERROR" app.log

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

Java 异常通常是多行的,用 grep -A 看后续行:

grep -A 20 "Exception" app.log

或看前后内容:

grep -C 10 "OutOfMemory" app.log

四、使用 journalctl(如果是 systemd 启动的 Java 服务)

journalctl -u your-java-service.service -f

过滤 ERROR:

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

按时间:

journalctl -u your-java-service.service --since "2024-01-21 10:00"

五、日志框架场景(Logback / Log4j)

如果是 按级别过滤(推荐在配置里做):

Logback 示例

<filter class="ch.qos.logback.classic.filter.LevelFilter">
    <level>ERROR</level>
    <onMatch>ACCEPT</onMatch>
    <onMismatch>DENY</onMismatch>
</filter>

六、实用组合示例

只看 ERROR,不要 DEBUG

tail -f app.log | grep "ERROR" | grep -v "DEBUG"

实时看异常栈

tail -f app.log | grep -A 30 "Exception"

如果你能告诉我:

  • 日志路径
  • 日志格式(如 2024-01-21 10:00:00 ERROR ...)
  • 是 实时看 还是 查历史

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

0 踩