在 CentOS 上“调试 Java 日志”一般包含两层意思:
1️⃣ 让 Java 程序输出更详细的日志(应用层日志)
2️⃣ 查看 / 定位 Java 运行时的日志和异常(系统 & 排错)
下面从常见场景给你一个实用指南。
Java 项目一般使用:
logback.xml:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/var/log/myapp/app.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE"/>
</root>
</configuration>
✅ 调整 level:
INFO → 正常DEBUG → 调试TRACE → 最详细java -Dlog.level=DEBUG -jar app.jar
或在 Spring Boot 中:
java -Dlogging.level.root=DEBUG -jar app.jar
tail -f /var/log/myapp/app.log
grep ERROR /var/log/myapp/app.log
如果是 systemd 服务:
journalctl -u myapp.service -f
直接在控制台或日志中找:
Exception in thread "main"
java.lang.NullPointerException
jmap -dump:live,format=b,file=/tmp/heap.hprof <pid>
jinfo <pid>
jstack <pid> > thread.txt
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar app.jar
CentOS 防火墙放行:
firewall-cmd --add-port=5005/tcp --permanent
firewall-cmd --reload
✅ 日志没输出?
level 是否过高✅ 日志太多?
grep✅ 服务启动就挂?
journalctl -xe
/var/log/myapp/
/etc/myapp/
/opt/myapp/
如果你能告诉我:
我可以给你更针对性的配置示例。