在 CentOS 上查看 Java 日志,常见有几种情况,不同部署方式日志位置不一样。下面按最常见场景给你一个完整说明。
如果是直接运行:
java -jar app.jar
日志一般直接输出在 终端,没有保存。
✅ 建议重定向保存:
java -jar app.jar > app.log 2>&1
查看:
tail -f app.log
nohup java -jar app.jar &
日志默认在:
nohup.out
查看:
tail -f nohup.out
大多数 Java 项目(Spring Boot、普通 Java 项目)会配置日志路径,例如:
/var/log/app/app.log
/opt/app/logs/app.log
查找日志文件:
find / -name "*.log" 2>/dev/null | grep -i app
Spring Boot 默认日志:
application.properties 配置:logging.file.name=/var/log/myapp.log
查看:
tail -f /var/log/myapp.log
如果 Java 是 systemd 服务:
journalctl -u your-service-name -f
查看所有系统日志:
journalctl -xe
tail -f /var/log/messages
或搜索 Java:
grep java /var/log/messages
如果 JVM 参数中有:
-Xlog:gc* # Java 9+
或
-XX:+PrintGCDetails -Xloggc:/var/log/gc.log
查看:
tail -f /var/log/gc.log
Java 崩溃时生成:
hs_err_pid<pid>.log
常见位置:
/opt/app/
/var/log/
当前工作目录
查找:
find / -name "hs_err_pid*.log" 2>/dev/null
systemctl status your-java-service
journalctl -u your-java-service -f
# 查看 Java 进程
ps -ef | grep java
# 查看某个 Java 进程打开了哪些日志
lsof -p <pid> | grep log
# 实时查看日志
tail -f xxx.log
# 搜索错误
grep -i error xxx.log
✅ 使用日志框架(Logback / Log4j2)
✅ 日志统一输出到 /var/log/xxx/
✅ 使用 systemd 管理 Java 服务
✅ 日志按日期滚动,避免无限增大
如果你愿意,可以告诉我:
我可以给你更精确的日志路径和排查方案。