Tomcat日志

1.http请求日志:localhost_access_log.2016-11-25.txt

内容如下:

  1 192.168.1.22 - - [25/Nov/2016:01:55:14 +0000] "GET / HTTP/1.1" 200 6040
  2 192.168.1.22 - - [25/Nov/2016:01:55:17 +0000] "GET /favicon.ico HTTP/1.1" 404 1014
  3 192.168.1.22 - - [25/Nov/2016:01:55:17 +0000] "GET /favicon.ico HTTP/1.1" 404 1014
  4 192.168.1.22 - - [25/Nov/2016:01:55:19 +0000] "POST /login.action;jsessionid=16A848707320EE595C92F440103A7C78 HTTP/1.1" 200 490
  5 192.168.1.22 - - [25/Nov/2016:01:55:20 +0000] "GET /top.jsp HTTP/1.1" 200 5058
  6 192.168.1.22 - - [25/Nov/2016:01:55:21 +0000] "GET /home.jsp HTTP/1.1" 200 2938
  7 192.168.1.22 - - [25/Nov/2016:01:55:21 +0000] "GET /down.jsp HTTP/1.1" 200 613
  8 192.168.1.22 - - [25/Nov/2016:01:55:21 +0000] "GET /left.jsp HTTP/1.1" 200 8158
  9 192.168.1.22 - - [25/Nov/2016:01:55:21 +0000] "GET /home.jsp?1 HTTP/1.1" 200 2938

2.运行日志:catalina.2016-11-25.log

内容如下:

 245 25-Nov-2016 03:25:24.077 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-80"]
 246 25-Nov-2016 03:25:24.130 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]
 247 25-Nov-2016 03:25:24.181 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service Catalina
 248 25-Nov-2016 03:25:24.182 SEVERE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.startup.HostConfig.deployWARs Error waiting for multi-     thread deployment of WAR files to complete
 249  java.lang.InterruptedException
 250     at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:400)
 251     at java.util.concurrent.FutureTask.get(FutureTask.java:187)
 252     at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:744)
 253     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:407)
 254     at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1595)
 255     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:280)
 256     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
 257     at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1136)
 258     at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1372)
 259     at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1376)
 260     at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1344)
 261     at java.lang.Thread.run(Thread.java:745)


Tomcat服务器的日志信息对于分析和排查问题非常重要。日志文件通常位于`<Tomcat安装目录>/logs`目录下,包含多个关键日志文件,如`catalina.out`、`localhost.log`、`manager.log`等,分别记录了不同的运行时信息。 ### 日志文件类型及用途 - **`catalina.out`**:这是Tomcat的主日志文件,记录了服务器启动、关闭以及运行过程中的所有标准输出和错误信息。它是调试Tomcat应用最常用的日志之一。 - **`localhost.log`**:记录与特定主机(通常是localhost)相关的请求处理信息,适用于调试Web应用程序的访问行为。 - **`manager.log`**:记录通过Manager应用部署或卸载应用的操作信息。 - **`host-manager.log`**:记录与虚拟主机管理相关的信息。 - **`catalina.<日期>.log`**:按天分割的日志文件,记录每天的运行信息,便于归档和分析。 - **`access_log.<日期>.txt`**:如果启用了访问日志功能,则该文件会记录每个HTTP请求的基本信息,如IP地址、请求时间、URL、响应状态码等。 ### Tomcat日志配置 默认情况下,Tomcat使用`logging.properties`文件来控制日志行为,该文件位于`<Tomcat安装目录>/conf/logging.properties`。可以通过修改此文件来调整日志级别、格式和输出路径。例如: ```properties # 设置全局日志级别为FINE(详细) .level=INFO # 配置catalina.out日志处理器 1catalina.org.apache.juli.FileHandler.level = FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. # 配置localhost日志处理器 2localhost.org.apache.juli.FileHandler.level = FINE 2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 2localhost.org.apache.juli.FileHandler.prefix = localhost. ``` ### 日志分析常用命令 在Linux系统中,可以使用以下命令对Tomcat日志进行实时监控和分析: - 实时查看日志尾部内容: ```bash tail -f logs/catalina.out ``` - 查找特定关键字(如“ERROR”或“Exception”): ```bash grep "ERROR" logs/catalina.out ``` - 统计某段时间内出现的关键字数量: ```bash grep -c "OutOfMemoryError" logs/catalina.out ``` - 按时间范围筛选日志条目(假设日志格式包含时间戳): ```bash awk '/2023-10-01 10:00/,/2023-10-01 11:00/' logs/catalina.out ``` ### 常见问题排查 #### 启动失败 - 检查`catalina.out`是否有`java.lang.OutOfMemoryError`或其他JVM错误。 - 确认端口是否被占用(如8080、8005),可通过`netstat -tuln | grep 8080`检查[^2]。 #### 应用崩溃或响应缓慢 - 搜索异常堆栈信息,如`NullPointerException`或`SQLException`。 - 使用`jstack`工具生成线程快照,分析是否存在死锁或线程阻塞情况。 #### 访问受限 - 检查`manager.log`确认是否有权限不足导致的部署失败。 - 如果启用了访问日志,检查`access_log.<日期>.txt`以确认客户端请求是否到达服务器。 ### 日志归档与轮转 为了防止日志文件过大,建议启用日志轮转机制。可以使用`logrotate`工具自动管理日志文件的大小和保留周期。创建一个配置文件(如`/etc/logrotate.d/tomcat`),示例内容如下: ```bash /logs/catalina.out { copytruncate daily rotate 7 compress missingok size +4096k } ``` 上述配置表示每天轮换一次日志文件,最多保留7个旧版本,并且当文件大小超过4MB时触发轮换。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值