温馨提示×

centos java日志报错怎么看

小樊
53
2026-09-06 06:02:40
栏目: 编程语言

在 CentOS 上排查 Java 日志报错,一般可以按下面几个步骤来,从哪里看日志 → 怎么看 → 常见错误怎么定位。


一、Java 日志一般在哪

1. 应用自己打的日志(最常见)

取决于你用的日志框架和配置:

  • Logback / Log4j2

    • 配置文件里一般写着路径,如:
      <file>/var/log/app/app.log</file>
      
    • 常见位置:
      /var/log/
      /opt/xxx/logs/
      ~/logs/
      
  • Spring Boot

    /var/log/application.log
    

    或当前目录:

    ./logs/application.log
    

2. 系统日志(服务启不来时看)

# systemd 管理
journalctl -u your-service-name -f

# 或
/var/log/messages
/var/log/syslog

3. Tomcat 日志

/var/log/tomcat/
/opt/tomcat/logs/

重点看:

  • catalina.out
  • localhost.log

二、怎么实时看日志

# 实时查看
tail -f /var/log/app/app.log

# 看最后 200 行
tail -n 200 /var/log/app/app.log

# 搜关键字
grep -i error /var/log/app/app.log
grep -C 10 Exception /var/log/app/app.log

三、Java 报错日志怎么看(重点)

1. 找到异常堆栈(关键)

Java 报错一般长这样:

2024-01-01 10:00:00 ERROR [main] c.x.App - start failed
java.lang.NullPointerException: null
    at com.x.service.UserService.getUser(UserService.java:25)
    at com.x.App.main(App.java:15)

看这 3 个地方:

  1. 异常类型:NullPointerException
  2. 错误信息:null
  3. 堆栈最上面你自己写的类(最重要)
    UserService.java:25
    

2. 常见异常速查

异常 含义
NullPointerException 对象没初始化
ClassNotFoundException 缺 jar 包
NoClassDefFoundError 类编译在但运行时没了
OutOfMemoryError 内存不够
StackOverflowError 死循环 / 递归
BindException 端口被占用

四、Java 进程起不来怎么办

1. 看是不是端口占用

netstat -tunlp | grep 8080

或

ss -tunlp | grep 8080

2. 看 JVM 报错

java -jar app.jar

直接前台跑,看控制台错误。

3. 内存问题

free -h
top

Java OOM 时看:

-XX:+HeapDumpOnOutOfMemoryError

五、建议你这样排查(实战流程)

  1. 服务起不来
    journalctl -u xxx -n 200
    
  2. 应用报错
    tail -f 应用日志
    grep Exception 日志
    
  3. 定位代码
    • 看堆栈最上面自己项目里的类
  4. 环境问题
    • JDK 版本
    • 端口
    • 权限

如果你愿意,可以把具体报错日志贴出来(哪怕是几行),我可以直接帮你定位是哪一类问题。

0 踩