在 CentOS 上过滤 Java 日志,常见做法取决于日志来源(应用日志、systemd、容器、原始输出等)。下面按最常用场景给你一套可操作的方案。
Java 应用日志一般在:
/var/log/xxx.log
/opt/app/logs/app.log
~/logs/app.log
查看文件是否存在:
ls -lh /var/log/*.log
grep 过滤关键字grep "ERROR" app.log
grep -i "error" app.log
grep -C 5 "NullPointerException" app.log
tail -f app.log | grep "ERROR"
grep "2024-01-21" app.log
grep "2024-01-21 10:" app.log
如果 Java 是通过 systemctl 启动的:
journalctl -u your-java-service.service
journalctl -u your-java-service.service -p err
journalctl -u your-java-service.service -f
journalctl -u your-java-service.service --since "2024-01-21 10:00" --until "2024-01-21 11:00"
ps -ef | grep java
tail -f nohup.out | grep "ERROR"
docker logs container_name
docker logs container_name | grep "ERROR"
docker logs -f container_name | grep "Exception"
grep -E "Exception|Error|Throwable" app.log
grep -A 20 "NullPointerException" app.log
awk '/2024-01-21 10:/,/2024-01-21 11:/' app.log
grep -c "ERROR" app.log
✅ 日志格式统一
2024-01-21 10:00:01 [ERROR] xxx
✅ 使用日志框架
✅ 按级别分文件
app-info.log
app-error.log
为了给你更精确的命令,可以补充:
我可以帮你写一条100% 精准的过滤命令。