温馨提示×

Linux中Tomcat日志如何查看

小樊
69
2025-10-06 08:34:54
栏目: 智能运维

一、Tomcat日志文件定位

Tomcat的日志文件默认存储在**$CATALINA_HOME/logs**目录下($CATALINA_HOME为Tomcat安装目录)。常见日志文件及作用如下:

  • catalina.out:主日志文件,记录Tomcat启动、运行及关闭过程中的所有级别日志(包括错误、警告、普通信息),是故障排查的核心文件。
  • localhost.log:记录本地主机相关的日志(如应用部署、上下文加载、Servlet初始化等)。
  • manager.log:记录Tomcat Manager应用的操作日志(如应用部署、卸载、启动/停止等)。
  • host-manager.log:记录Tomcat Host Manager应用的操作日志(如虚拟主机配置变更等)。
  • localhost_access_log.*.txt:HTTP访问日志(按日期分割,如localhost_access_log.2025-10-06.txt),记录用户请求的IP、时间、访问资源、响应状态码等信息。

二、常用日志查看命令

1. 实时跟踪日志(监控最新内容)

使用tail -f命令持续显示日志文件末尾的新增内容,适用于监控Tomcat启动过程或实时排查运行时问题(如应用崩溃、请求异常)。

tail -f /path/to/tomcat/logs/catalina.out

Ctrl+C终止跟踪。

2. 分页查看日志(详细查阅历史内容)

使用less命令分页浏览日志文件,支持上下翻页(Page Up/Page Down)、跳转到指定行(G/gg)、搜索关键字(按/输入关键词,n跳转下一匹配项)。

less /path/to/tomcat/logs/catalina.out

退出分页模式按q

3. 过滤特定信息(快速定位关键内容)

结合grep命令筛选日志中的关键字(如“ERROR”“Exception”“Timeout”),缩小排查范围。

# 筛选包含"ERROR"的行(不区分大小写)
tail -f /path/to/tomcat/logs/catalina.out | grep -i 'error'

# 筛选包含"Exception"的行及其前后3行(查看异常堆栈)
tail -f /path/to/tomcat/logs/catalina.out | grep -C3 'Exception'

若需统计错误次数,可添加wc -l

grep -i 'error' /path/to/tomcat/logs/catalina.out | wc -l

4. 查看历史日志(按时间范围筛选)

若需分析特定时间段的日志(如某次故障发生的时间段),可使用sedgrep命令:

# 使用sed提取2025-10-06 14:00至15:00之间的日志(需日志时间格式匹配)
sed -n '/2025-10-06 14:00:/,/2025-10-06 15:00:/p' /path/to/tomcat/logs/catalina.out

# 使用grep按日期和小时过滤(适用于日志中包含明确时间戳的情况)
grep '2025-10-06 14:[0-5][0-9]' /path/to/tomcat/logs/catalina.out

三、进阶技巧

1. 多日志文件监控(分屏查看)

使用multitail工具(需提前安装,如yum install multitailapt install multitail)分屏同时查看多个日志文件,便于对比分析(如同时查看访问日志和错误日志)。

multitail /path/to/tomcat/logs/catalina.out /path/to/tomcat/logs/localhost_access_log.txt

2. 处理日志轮转(避免文件过大)

当日志文件过大(如catalina.out超过GB级别)时,会影响Tomcat性能。可通过以下方式处理:

  • 使用--follow=name参数:跟踪日志文件的新版本(适用于日志按日期分割的情况,如catalina.2025-10-06.out)。
    tail --follow=name /path/to/tomcat/logs/catalina.out
    
  • 配置logrotate工具:自动压缩、删除旧日志(编辑/etc/logrotate.d/tomcat文件,添加以下配置):
    /path/to/tomcat/logs/*.log {
        daily           # 每天轮转
        missingok       # 忽略缺失文件
        rotate 7        # 保留最近7天的日志
        compress        # 压缩旧日志(如.gz格式)
        notifempty      # 空日志不轮转
        create 640 root adm  # 创建新日志文件的权限
    }
    
    手动触发轮转:
    logrotate /etc/logrotate.d/tomcat
    

四、注意事项

  • 若日志文件路径与默认路径不同,可通过echo $CATALINA_HOME确认Tomcat安装目录,或通过find / -name "catalina.out" -type f查找日志文件位置。
  • 对于生产环境,建议开启日志轮转(如logrotate),避免日志文件占用过多磁盘空间。
  • 若日志中包含乱码,可检查Tomcat的启动脚本(如catalina.sh),确保设置了正确的字符编码(如-Dfile.encoding=UTF-8)。

0