在CentOS上查看Java日志错误码前,需先确定日志文件的存储位置。常见路径包括:
/var/log/java/(部分Java应用默认存放日志);/opt/tomcat/logs/catalina.out、WebLogic的/opt/weblogic/logs/server.log;application.properties中logging.file.name=logs/app.log)指定的路径。ps -ef | grep java命令查看Java进程,结合进程参数(如-Dlogging.file.name)确认日志文件位置。使用grep命令结合错误关键字(如ERROR、Exception或具体错误码,如404、USE002)过滤日志:
grep -i "ERROR" /path/to/your/logfile.log # 查找所有ERROR级别的日志
grep -i "404" /var/log/java/access.log # 查找HTTP 404错误的日志
grep -i "USE002" /opt/tomcat/logs/catalina.out # 查找自定义错误码USE002的日志
-i参数表示忽略大小写,-A 5可追加显示匹配行后的5行上下文(帮助理解错误场景)。
若需实时查看新产生的错误日志,可使用tail -f命令:
tail -f /path/to/your/logfile.log | grep --line-buffered "ERROR"
--line-buffered确保每行日志即时输出,便于及时响应问题。
若Java应用通过系统服务(如tomcat.service)运行,可使用journalctl查看系统级日志:
journalctl -u tomcat.service # 查看Tomcat服务的所有日志
journalctl -u tomcat.service --since "1 hour ago" # 查看过去1小时的日志
journalctl -u tomcat.service | grep "ERROR" # 过滤系统日志中的ERROR信息
适用于CentOS 7及以上版本,可整合系统日志与应用日志,便于排查系统级问题。
若Java应用因崩溃(如OutOfMemoryError)终止,系统会生成hs_err_pid<pid>.log文件(路径通常为/var/log/java/或应用启动目录)。该文件包含崩溃时间、错误类型、堆栈跟踪及线程信息,是排查崩溃问题的关键:
ls -lh /var/log/java/hs_err_pid*.log # 查找所有JVM崩溃日志
cat /var/log/java/hs_err_pid12345.log # 查看具体崩溃日志
日志中“Problematic frame”字段会指向导致崩溃的代码位置(如JDK内部方法或应用代码)。
对于海量日志,可使用工具实现高效检索与可视化:
ERROR日志超过阈值时发送邮件通知)。logstash.conf),将Java日志导入分析平台。top(CPU)、free -m(内存)、df -h(磁盘)命令确认系统资源是否充足(如内存不足可能导致OutOfMemoryError);log4j.rootLogger=DEBUG, console),增加DEBUG级别日志输出,便于定位问题根源;-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/app/gc.log),通过VisualVM等工具分析GC趋势。