logs
文件夹(通常位于/opt/tomcat/logs
或$CATALINA_HOME/logs
),使用tail -f catalina.out
命令可实时查看并滚动显示最新日志内容,也可用less
或cat
查看其他日志文件。Tomcat日志核心目录
默认路径为:$CATALINA_HOME/logs/
($CATALINA_HOME
是Tomcat安装目录,可通过 echo $CATALINA_HOME
或 ps -ef | grep tomcat
查看)
关键日志文件:
- catalina.out
主控制台日志,包含启动信息、未捕获异常、System.out.println()输出。
- catalina.yyyy-mm-dd.log
每日归档的完整日志(日期替换实际日期)。
- localhost.yyyy-mm-dd.log
应用部署日志(如Servlet加载错误)。
- localhost_access_log.yyyy-mm-dd.txt
HTTP访问日志(请求路径、状态码、响应时间)。
查看日志的5种方法
方法1:实时监控日志(最常用)
tail -f $CATALINA_HOME/logs/catalina.out
-f
参数:持续输出新增内容(调试必备)。- 终止监控:按
Ctrl+C
。
方法2:过滤关键错误(如内存溢出)
grep -i "outofmemoryerror" catalina.out
-i
:忽略大小写(如 OutOfMemoryError)。- 组合命令:
grep "ERROR" catalina.out -A 5
(显示匹配行及后5行)。
方法3:按时间范围查看
# 查看最近100行 tail -n 100 catalina.out # 查看今日日志(假设日期为2025-10-01) cat catalina.2025-10-01.log
方法4:多文件联合检索
# 在所有日志中搜索关键词 grep "NullPointerException" $CATALINA_HOME/logs/*.log
方法5:使用less分页查看
less catalina.out
- 操作键:
- 空格键:向下翻页
- :搜索(按
n
跳转下一个) q
:退出
高级技巧
-
动态切换日志文件
当catalina.out过大时(如超过2GB),用cp /dev/null catalina.out
清空文件(先备份!)。 -
权限问题处理
若提示Permission denied
:sudo chown -R $USER:$USER $CATALINA_HOME/logs/ # 修改日志所属用户 sudo chmod 755 logs/ # 开放目录权限
-
自定义日志路径
修改$CATALINA_HOME/conf/logging.properties
,1catalina.org.apache.juli.AsyncFileHandler.directory = /opt/tomcat_logs
-
日志切割工具
使用logrotate
自动归档(避免文件过大):/opt/tomcat/logs/catalina.out { daily rotate 30 compress missingok copytruncate }
常见问题排查场景
- 启动失败:
grep "SEVERE" catalina.out
检查致命错误。 - HTTP 404响应:
查看localhost_access_log
确认请求路径。 - 内存泄漏:
搜索GC overhead limit exceeded
或java.lang.OutOfMemoryError
。 - 应用未加载:
检查localhost.log
中的Deployment failure
。
安全提示
- 禁止直接修改生产日志:通过只读命令查看(如
cat
、less
)。 - 敏感信息脱敏:确保日志不输出密码、密钥等(配置
log4j.properties
过滤)。
引用说明基于Apache Tomcat 9官方文档及Linux Bash操作标准实践,适用于CentOS/Ubuntu等主流发行版,命令经过实测验证,符合服务器安全规范。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/33409.html