Tomcat的日志文件默认存储在其安装目录的logs子目录下,路径由$CATALINA_HOME环境变量决定($CATALINA_HOME通常指向Tomcat的安装根目录)。常见日志文件及作用如下:
/manager)和主机管理器应用(/host-manager)的操作日志(如用户登录、应用部署、资源管理等)。localhost_access_log.2025-10-14.txt),记录客户端请求的详细信息(IP地址、访问时间、请求方法、URL、响应状态码等)。定位方法:
$CATALINA_HOME环境变量快速定位:echo $CATALINA_HOME # 输出Tomcat安装目录(如/opt/tomcat) cd "$CATALINA_HOME/logs" # 进入日志目录 find命令全局搜索(若不确定路径):sudo find / -name "*.log" -type f # 查找系统中所有.log文件(需root权限) server.xml($CATALINA_HOME/conf/)中的<Valve>标签可配置访问日志路径(如pattern="%h %l %u %t "%r" %s %b"对应访问日志格式)。logging.properties($CATALINA_HOME/conf/)可配置日志级别、输出目标(如文件、控制台)。tail -f:持续输出日志文件的末尾新增内容,适合监控Tomcat启动过程或实时排查运行时问题(如应用崩溃、请求异常)。
tail -f "$CATALINA_HOME/logs/catalina.out" # 实时查看主日志 tail -f "$CATALINA_HOME/logs/localhost_access_log.txt" # 实时查看访问日志 按Ctrl+C终止监控。
less:分页浏览日志文件,支持上下翻页(Page Up/Page Down)、跳转行号(Ctrl+G输入行号)、搜索关键字(/输入关键词,n跳转下一匹配项)。
less "$CATALINA_HOME/logs/catalina.out" # 分页查看主日志 cat:直接输出日志文件全部内容(适合小文件快速查看)。
cat "$CATALINA_HOME/logs/localhost.log" # 查看本地主机日志 grep:筛选日志中包含特定关键字的行(如错误、异常),支持正则表达式和上下文显示。
grep -i "error" "$CATALINA_HOME/logs/catalina.out" # 不区分大小写查找错误信息 grep -A 3 "exception" "$CATALINA_HOME/logs/localhost.log" # 显示匹配行及后3行(查看异常堆栈) 组合命令:实时监控并过滤错误日志(最常用)。
tail -f "$CATALINA_HOME/logs/catalina.out" | grep -i "error" sed:提取日志中指定时间段的记录(需日志时间格式与命令中的模式匹配,如2025-10-14 14:30:00)。
sed -n '/2025-10-14 14:30:00/,/2025-10-14 15:00:00/p' "$CATALINA_HOME/logs/catalina.out" # 查看14:30-15:00的日志 grep正则匹配:快速筛选某一小时的日志(如14:00-14:59)。
grep "2025-10-14 14:[0-5][0-9]" "$CATALINA_HOME/logs/catalina.out" # 匹配14点的所有日志 multitail)若需同时查看多个日志文件(如catalina.out和access_log.txt),可使用multitail工具(需安装,如sudo apt install multitail)。
multitail "$CATALINA_HOME/logs/catalina.out" "$CATALINA_HOME/logs/localhost_access_log.txt" # 分屏显示两个日志 --follow=name)若日志文件按日期分割(如catalina.2025-10-14.log),可使用tail --follow=name持续跟踪新文件(避免旧文件被轮转后无法监控)。
tail --follow=name "$CATALINA_HOME/logs/catalina." # 跟踪所有以catalina.开头的日志文件 对于海量日志,可使用专业工具进行分析:
tomcat用户拥有$CATALINA_HOME/logs目录的读权限)。若权限不足,可使用sudo或调整权限:sudo chown -R tomcat:tomcat "$CATALINA_HOME/logs" # 更改所有权(tomcat用户:tomcat组) sudo chmod 755 "$CATALINA_HOME/logs" # 设置目录权限(所有者可读写执行,其他用户可读执行) logrotate工具轮转日志(如每天生成新文件并压缩旧文件),避免日志文件过大占用磁盘空间。可通过/etc/logrotate.d/tomcat配置轮转策略(如保留7天日志、压缩旧日志)。