在 CentOS 上过滤 Java 日志,常见有几种场景,下面按最常用 → 高级给你总结,基本一学就会。
grep 过滤日志文件grep "ERROR" app.log
grep -i "error" app.log
grep -n "ERROR" app.log
grep "ERROR" app.log | grep "NullPointer"
grep -E "ERROR|WARN|Exception" app.log
tail -f app.log | grep "ERROR"
tail -f app.log | grep -i "error"
tail -f app.log | grep --color "ERROR"
grep "2024-01-21" app.log
grep "2024-01-21 10:" app.log
sed)sed -n '/2024-01-21 10:1[0-9]/,/2024-01-21 10:2[0-9]/p' app.log
grep -A 20 "Exception" app.log
grep -A 30 "Caused by" app.log
grep -E "Exception|Error|Throwable" app.log
zgrep "ERROR" app.log.gz
zcat app.log.gz | grep "ERROR"
journalctl -u your-java-service.service
journalctl -u your-java-service.service | grep ERROR
journalctl -u your-java-service.service -f
如果你能改配置,可以只输出 ERROR:
<logger name="com.xxx" level="ERROR"/>
grep "http-nio-8080" app.log
✅ 查看最近 500 行错误日志
tail -n 500 app.log | grep ERROR
✅ 统计某类错误出现次数
grep "NullPointerException" app.log | wc -l
✅ 按分钟统计错误数量
grep "ERROR" app.log | cut -d: -f1-2 | sort | uniq -c
| 类型 | 常见路径 |
|---|---|
| Spring Boot | logs/app.log |
| Tomcat | logs/catalina.out |
| 自定义 | /var/log/xxx/xxx.log |
如果你愿意,我可以:
你现在的 Java 日志是 哪种类型 / 哪个框架?