在 Linux 系统中查看 Tomcat 日志

devtools/2025/3/6 17:51:51/

在 Linux 系统中查看 Tomcat 日志,主要通过命令行工具定位日志文件并分析内容。以下是具体方法及常用命令:

一、定位 Tomcat 日志路径

Tomcat 日志通常位于安装目录的 logs 子目录下,常见日志文件包括:
catalina.out:主日志文件,记录启动、运行及错误信息。
localhost.log:应用部署和上下文加载日志。
localhost_access_log.txt:HTTP 访问日志(按日期分割)。

示例路径:/usr/local/tomcat/logs/(具体路径需根据实际安装目录调整)。


二、查看日志的常用方法

1. 实时跟踪日志(推荐场景:监控启动或运行状态)

tail -f 命令:持续显示日志末尾新增内容,适合实时监控。

tail -f catalina.out

Ctrl+C 终止跟踪。

过滤关键字:结合 grep 筛选特定内容(如错误信息):

tail -f catalina.out | grep -i 'error'  # 不区分大小写显示含 "error" 的行
tail -f catalina.out | grep -C3 'Exception'  # 显示匹配行及其前后3行。#### 2. **查看历史日志内容**
- **`less` 命令**:分页浏览日志,支持上下翻页、搜索关键字(按 **`/`** 输入搜索词,**`n`** 跳转下一匹配项):  
```bash
less catalina.out
  • cat + grep:快速检索静态内容:
    cat catalina.out | grep 'OutOfMemoryError'  # 筛选内存溢出错误
    
3. 按时间范围筛选日志
  • sed 命令:提取特定时间段内的日志(需日志时间格式匹配):
    sed -n '/2025-03-05 14:00:/,/2025-03-05 15:00:/p' catalina.out  # 查看14:00至15:00的日志。
    
  • grep 正则匹配:按日期和小时过滤:
    grep '2025-03-05 14:[0-5][0-9]' catalina.out  # 匹配14:00至14:59的日志。
4. 多日志文件监控

multitail 工具:分屏同时查看多个日志(需安装):

multitail catalina.out localhost_access_log.txt  # 分屏显示两个日志文件。
5. 处理日志轮转(Log Rotation)

若日志按日期分割(如 catalina.2025-03-05.log),可指定文件名通配符或使用 --follow=name 参数持续跟踪新文件:

tail --follow=name catalina.*.log  # 自动追踪新生成的日志文件。

三、进阶操作

统计关键错误次数

grep 'OutOfMemoryError' catalina.out | wc -l  # 计算内存错误出现次数。

导出日志片段

sed -n '1000,2000p' catalina.out > error_snippet.log  # 导出1000至2000行到新文件。

注意事项

日志权限:确保当前用户对日志文件有读取权限。
文件大小:大文件避免直接使用 cat,优先用 lesstail 分页加载。
环境差异:日志路径和名称可能因 Tomcat 版本或配置不同而变化,建议先确认实际目录结构。

通过上述方法,可高效定位 Tomcat 运行问题。如需更多场景组合(如分页+过滤),可灵活结合管道符和命令参数。


http://www.ppmy.cn/devtools/165047.html

相关文章

数据结构预算法-图论- 最小生成树-prim and kruskal

基础文字知识 最小生成树(Minimum Spanning Tree,MST)是图论中的一个重要概念,以下是关于它的详细介绍: 定义 在一个无向连通加权图中,最小生成树是一棵包含图中所有顶点,且边的权值之和最小的…

分库分表 MyBatis的拦截器(Interceptor)在 SQL 执行前动态修改表名

一、定义拦截器 import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins…

【C++设计模式】第一篇:单例模式(Singleton)​

注意:复现代码时,确保 VS2022 使用 C17/20 标准以支持现代特性。 确保全局唯一实例的线程安全实现 1. 模式定义与用途​ 核心目标:保证一个类仅有一个实例,并提供全局访问点。 常见场景: 日志系统(避免多…

Ubuntu20.04 在离线机器上安装 NVIDIA Container Toolkit

步骤 1.下载4个安装包 Index of /nvidia-docker/libnvidia-container/stable/ nvidia-container-toolkit-base_1.13.5-1_amd64.deb libnvidia-container1_1.13.5-1_amd64.deb libnvidia-container-tools_1.13.5-1_amd64.deb nvidia-container-toolkit_1.13.5-1_amd64.deb 步…

spring-ioc-bean

本文重点在于充分应用 Spring 提供的 IoC 特性,介绍如何创建一个好用的 Bean。基础篇不涉及后置处理器、 BeanDefinition 以及 Spring 加载原理相关的知识。 引入 ioc 的起源 ** 接口与实现类的需求变更 ** :最初的静态工厂模式。** 反射机制 ** &…

Unix Domain Socket和eventfd

在Linux开发中,Unix Domain Socket和eventfd是两种不同的通信机制,它们的设计目标和适用场景有显著差异。以下分点解释并配合示例说明: 一、Unix Domain Socket(UDS) 1. 是什么? 一种**本地进程间通信&am…

【数据库】关系代数

关系代数 一、关系代数的概念二、关系代数的运算2.1 并、差、交2.2 投影、选择2.3 笛卡尔积2.4 连接2.5 重命名2.6 优先级 一、关系代数的概念 关系代数是一种抽象的数据查询语言用对关系的运算来表达查询 运算对象:关系运算符:4类运算结果:…

大白话html第五章HTML5 新增表单元素和属性

大白话html第五章HTML5 新增表单元素和属性 HTML5 给表单带来了很多新的小伙伴&#xff0c;让我们收集用户信息变得更方便、更智能。 新增表单元素 <input type"date">&#xff1a;这个就像一个自带日历的小框框&#xff0c;用户可以直接在里面选择日期&…