在 CentOS 上实时查看 Java 日志,常见做法取决于日志写在哪个文件、以及用的是什么日志框架/容器。下面按常见场景给你说明。
如果 Java 应用把日志输出到文件,比如:
/opt/app/logs/app.log
实时查看:
tail -f /opt/app/logs/app.log
只查看最新 100 行并实时:
tail -n 100 -f /opt/app/logs/app.log
如果有日志切割(如 app.log.2026-01-21):
tail -F /opt/app/logs/app.log
-F会跟踪文件轮转,比-f更安全
nohup java -jar app.jar > app.log 2>&1 &
实时看:
tail -f app.log
如果是:
systemctl start myapp
直接看实时日志:
journalctl -u myapp -f
看最近 200 行并实时:
journalctl -u myapp -n 200 -f
journalctl -u your-service -f
或
tail -f logs/spring.log
java -jar app.jar --logging.file=/var/log/app.log
然后:
tail -f /var/log/app.log
只看 ERROR:
tail -f app.log | grep ERROR
高亮显示:
tail -f app.log | grep --color=auto ERROR
多关键字:
tail -f app.log | grep -E "ERROR|WARN"
docker logs -f 容器名或ID
实时 + 最近 100 行:
docker logs -f --tail 100 容器名
multitail app.log error.log
(需安装 multitail)
less +F app.log
进入后按
F实时跟随,Ctrl+C停止
tail -f app.log | grep -E "Exception|ERROR|OutOfMemory"
配合线程/内存:
top
jstack <pid>
jstat -gc <pid> 1000
如果你愿意,可以告诉我:
我可以直接给你最合适的一条命令。