温馨提示×

centos中tomcat日志查看指南

小樊
50
2025-10-07 01:17:34
栏目: 智能运维

一、Tomcat日志文件位置
在CentOS系统中,Tomcat日志文件的默认路径由$CATALINA_HOME(Tomcat安装目录)决定,主要日志文件分布在$CATALINA_HOME/logs目录下:

  • catalina.out:Tomcat的标准输出日志,包含启动/停止信息、运行时错误及常规日志,是排查问题的核心文件。
  • localhost..log:记录本地主机活动日志(如Servlet生命周期、JNDI操作等)。
  • manager..log:Tomcat Manager应用的访问及操作日志。
  • host-manager..log:Tomcat Host Manager应用的日志。
  • access_log(或localhost_access_log.<date>.txt):HTTP请求访问日志,记录客户端IP、请求方法、响应状态码等信息(部分版本需通过server.xml配置开启)。

若Tomcat通过systemd服务管理(如CentOS 7及以上),日志也可能被journald收集,可通过journalctl命令查看。

二、常用日志查看命令

  1. 实时查看日志(tail命令)
    tail -f catalina.out:持续显示catalina.out文件的最新内容,按Ctrl+C停止。常用变体:

    • tail -n 100 catalina.out:显示文件最后100行;
    • tail -q -f catalina.out:安静模式(不显示处理信息);
    • tail -v -f catalina.out:详细模式(显示处理信息)。
  2. 过滤关键字(grep命令)
    结合tail -f实时过滤日志中的关键字(如“error”),快速定位问题:
    tail -f catalina.out | grep "error"(不区分大小写可加-i)。

  3. 分页查看大文件(less命令)
    对于大型日志文件,使用less命令可上下滚动查看,支持搜索(按/键输入关键字):
    less catalina.out,按q退出。

  4. 查看Systemd日志(journalctl命令)
    若Tomcat以systemd服务运行(服务名通常为tomcat),可通过以下命令查看日志:
    journalctl -u tomcat.service -f-f表示实时跟踪,-u指定服务单元)。

三、日志轮转配置(避免日志过大)
Tomcat默认通过logrotate工具实现日志轮转(每天分割日志并压缩),配置文件位于/etc/logrotate.d/tomcat。示例配置(每天轮转、保留7天、压缩):

/usr/local/tomcat/logs/catalina.out {
    daily
    rotate 7
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
}
  • daily:每天轮转;
  • rotate 7:保留最近7个轮替文件;
  • compress:压缩旧日志(delaycompress延迟压缩,避免当天日志未完全写入时压缩);
  • sharedscripts:所有日志轮转完成后统一执行脚本。

四、日志级别设置(控制日志详细程度)
Tomcat的日志级别通过$CATALINA_HOME/conf/logging.properties文件配置,常见级别从低到高为:OFF(关闭)、SEVERE(严重错误)、WARNING(警告)、INFO(常规信息)、CONFIG(配置信息)、FINE(调试)、FINER(详细调试)、FINEST(最详细调试)。

设置根日志级别(影响全局)
找到handlers行(如handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler),在其上方添加:
.level = INFO(设置为INFO级别,平衡信息量与可读性)。

设置特定组件日志级别(针对性调试)
例如,调整Catalina容器或数据库驱动的日志级别:

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE
java.sql.level = FINE

修改后需重启Tomcat使配置生效:
$CATALINA_HOME/bin/shutdown.sh && $CATALINA_HOME/bin/startup.sh

五、高级技巧

  • 截取特定时间段日志(sed命令)
    若需分析某一时间段的日志(如2025-10-01 12:00至12:05),可使用sed命令:
    sed -n "/2025-10-01 12:00/,/2025-10-01 12:05/p" catalina.out > /tmp/tomcat_segment.log

  • 结合多命令分析
    例如,统计catalina.out中“error”的出现次数:
    grep -c "error" catalina.out
    或将错误日志保存到单独文件:
    grep "error" catalina.out > /tmp/tomcat_errors.log

0