centos

centos中tomcat日志查看方法

小樊
41
2025-11-05 19:47:15
栏目: 智能运维

CentOS中Tomcat日志查看方法

1. 定位Tomcat日志目录

Tomcat的日志文件默认存储在$CATALINA_HOME/logs目录下($CATALINA_HOME为Tomcat安装目录的环境变量)。常见路径包括:

2. 实时查看日志(tail命令)

使用tail -f命令可实时跟踪日志文件的新增内容,适用于故障排查时监控实时日志:

# 进入日志目录
cd $CATALINA_HOME/logs  
# 实时查看主日志(catalina.out)
tail -f catalina.out  

常用参数说明:

3. 过滤关键信息(grep命令)

若需查找特定关键字(如“error”“exception”),可结合grep命令过滤日志:

# 实时查看包含“error”的日志行
tail -f catalina.out | grep "error"  
# 查找包含“timeout”的行并显示前后5行上下文
grep -A 5 -B 5 "timeout" catalina.out  

注:-A表示显示匹配行后的若干行,-B表示显示匹配行前的若干行。

4. 使用journalctl查看Systemd服务日志

若Tomcat以Systemd服务运行(CentOS 7及以上默认方式),可通过journalctl命令查看统一管理的日志:

# 查看Tomcat服务实时日志
journalctl -u tomcat.service -f  
# 查看Tomcat服务的最近10条日志
journalctl -u tomcat.service -n 10  

参数说明:

5. 查看完整日志文件(less/more命令)

若需查看日志文件的完整内容(而非实时更新),可使用lessmore命令:

# 使用less分页查看(支持上下翻页、搜索)
less catalina.out  
# 使用more分页查看(空格翻页,Enter逐行)
more catalina.out  

注:less功能更强大,推荐使用(按q退出)。

6. 截取特定时间段日志(sed/awk命令)

若需提取特定时间段的日志(如2025-10-01至2025-10-02),可使用sedawk命令:

# 使用sed截取指定时间段日志(需日志中包含时间戳)
sed -n "/2025-10-01 00:00/,/2025-10-02 23:59/p" catalina.out > /tmp/tomcat_specific_period.log  
# 使用awk截取(需日志时间格式固定)
awk '/2025-10-01/,/2025-10-02/' catalina.out > /tmp/tomcat_specific_period.log  

7. 日志轮转管理(logrotate工具)

Tomcat日志文件会随时间增长而变大,需通过logrotate工具定期轮转(压缩、删除旧日志)。默认配置文件位于/etc/logrotate.d/tomcat,示例配置如下:

/usr/local/tomcat/logs/catalina.out {
    daily          # 每天轮转
    rotate 7       # 保留最近7个轮替文件
    compress       # 压缩旧日志(如catalina.out.1.gz)
    missingok      # 若日志文件不存在也不报错
    notifempty     # 若日志为空则不轮转
    create 640 tomcat tomcat  # 创建新日志文件并设置权限
    postrotate
        /bin/kill -HUP `cat /var/run/tomcat.pid` 2>/dev/null || true  # 重启Tomcat以重新打开日志文件
    endscript
}

注:修改配置后,logrotate会自动按计划执行(通常每日一次),无需手动操作。

通过上述方法,可高效查看、过滤及管理CentOS系统中Tomcat的日志文件,助力故障排查与系统监控。

0
看了该问题的人还看了