Debian系统中,Tomcat的日志文件默认存储在/var/log/tomcatX/目录下(X为Tomcat主版本号,如tomcat9对应/var/log/tomcat9/)。主要日志文件包括:
catalina.out:Tomcat标准输出与错误输出的核心日志,记录服务器启动、运行及停止过程中的关键信息;localhost.<date>.log:记录与本地主机相关的事件(如Web应用部署、Servlet初始化);manager.<date>.log:Tomcat Manager应用的活动日志(如应用部署、卸载);host-manager.<date>.log:Tomcat Host Manager应用的活动日志(如虚拟主机管理)。/opt/tomcat/logs/(自定义安装路径),可通过ps aux | grep tomcat查看CATALINA_HOME环境变量确认具体路径。使用tail命令实时监控日志文件的最新内容,快速捕捉当前错误:
sudo tail -f /var/log/tomcatX/catalina.out
按Ctrl+C退出实时监控。若需查看特定时间段的日志(如2025-10-09的错误),可结合grep过滤:
sudo grep "2025-10-09" /var/log/tomcatX/catalina.out | grep "ERROR"
通过grep命令筛选日志中的错误关键字,缩小排查范围:
ERROR级别的日志:sudo grep "ERROR" /var/log/tomcatX/catalina.out
SEVERE(严重)或WARNING(警告)级别的日志:sudo grep -E "SEVERE|WARNING" /var/log/tomcatX/catalina.out
OutOfMemoryError):sudo grep "OutOfMemoryError" /var/log/tomcatX/catalina.out
Tomcat日志中的错误通常可分为以下几类,需结合堆栈跟踪定位具体原因:
SEVERE: Error starting Tomcat. Port 8080 already in use,表示8080端口已被其他进程占用。lsof -i:8080查看占用进程,用kill -9 <PID>终止进程,或修改server.xml中的Connector端口(如改为8081)。java.lang.OutOfMemoryError: Java heap space,表示JVM堆内存不足。/etc/default/tomcatX文件,调整JAVA_OPTS参数增加堆内存(如-Xms512m -Xmx2048m),重启Tomcat使配置生效。java.lang.ClassNotFoundException: com.example.MyClass,表示类路径中缺少对应的JAR包。WEB-INF/lib目录是否包含所需JAR包,或通过pom.xml(Maven项目)添加依赖。Cannot create JDBC driver of class '' for connect URL 'null',表示数据库驱动未加载或连接配置错误。mysql-connector-java-8.0.33.jar)放入lib目录,检查context.xml或web.xml中的数据库URL、用户名、密码是否正确。404 Not Found:请求的资源不存在(如URL路径错误、应用未部署);500 Internal Server Error:服务器内部错误(如代码异常、配置错误)。webapps目录下存在对应WAR包),查看localhost.<date>.log中的详细堆栈跟踪。对于海量日志,可使用专业工具提升分析效率:
sudo grep "ERROR" /var/log/tomcatX/catalina.out | wc -l)。为防止日志文件过大占用磁盘空间,需配置日志轮转。Debian系统中,Tomcat的日志轮转配置通常位于/etc/logrotate.d/tomcatX,示例配置如下:
/var/log/tomcatX/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
daily:每日轮转;rotate 7:保留最近7天的日志;compress:压缩旧日志;copytruncate:复制日志文件后清空原文件(避免重启Tomcat)。通过以上步骤,可系统性地分析Debian系统中Tomcat的错误日志,快速定位并解决运行异常问题。