当前位置:首页 > Linux > 正文

Linux如何查看Tomcat日志

在Linux下查看Tomcat日志,主要进入其安装目录下的 logs文件夹(通常位于 /opt/tomcat/logs$CATALINA_HOME/logs),使用 tail -f catalina.out命令可实时查看并滚动显示最新日志内容,也可用 lesscat查看其他日志文件。

Tomcat日志核心目录

默认路径为:
$CATALINA_HOME/logs/
$CATALINA_HOME是Tomcat安装目录,可通过 echo $CATALINA_HOMEps -ef | grep tomcat 查看)

关键日志文件

  1. catalina.out

    主控制台日志,包含启动信息、未捕获异常、System.out.println()输出。

  2. catalina.yyyy-mm-dd.log

    每日归档的完整日志(日期替换实际日期)。

    Linux如何查看Tomcat日志  第1张

  3. localhost.yyyy-mm-dd.log

    应用部署日志(如Servlet加载错误)。

  4. 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:退出

高级技巧

  1. 动态切换日志文件
    当catalina.out过大时(如超过2GB),用 cp /dev/null catalina.out 清空文件(先备份!)。

  2. 权限问题处理
    若提示 Permission denied

    sudo chown -R $USER:$USER $CATALINA_HOME/logs/  # 修改日志所属用户
    sudo chmod 755 logs/                            # 开放目录权限
  3. 自定义日志路径
    修改 $CATALINA_HOME/conf/logging.properties

    1catalina.org.apache.juli.AsyncFileHandler.directory = /opt/tomcat_logs
  4. 日志切割工具
    使用 logrotate 自动归档(避免文件过大):

    /opt/tomcat/logs/catalina.out {
        daily
        rotate 30
        compress
        missingok
        copytruncate
    }

常见问题排查场景

  • 启动失败
    grep "SEVERE" catalina.out 检查致命错误。
  • HTTP 404响应
    查看 localhost_access_log 确认请求路径。
  • 内存泄漏
    搜索 GC overhead limit exceededjava.lang.OutOfMemoryError
  • 应用未加载
    检查 localhost.log 中的 Deployment failure

安全提示

  1. 禁止直接修改生产日志:通过只读命令查看(如 catless)。
  2. 敏感信息脱敏:确保日志不输出密码、密钥等(配置 log4j.properties 过滤)。

引用说明基于Apache Tomcat 9官方文档及Linux Bash操作标准实践,适用于CentOS/Ubuntu等主流发行版,命令经过实测验证,符合服务器安全规范。

0