在 Linux 上运行的 Tomcat,其“日志格式”通常分两类来看:
Tomcat 默认使用 java.util.logging(JUL),日志文件一般在:
$CATALINA_HOME/logs/
常见文件:
catalina.out(最常用,标准输出和错误)catalina.YYYY-MM-DD.loglocalhost.YYYY-MM-DD.loglocalhost_access_log.YYYY-MM-DD.txt这是 控制台输出,没有统一格式,例如:
01-Jan-2024 10:12:33.123 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1234 ms
一般是:
日期 时间 级别 [线程] 类名 消息
Tomcat 的 访问日志格式由 server.xml 配置,默认使用的是 类似 Apache 的 combined 格式。
在 server.xml 中:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern="combined" />
127.0.0.1 - - [01/Jan/2024:10:12:33 +0800] "GET /index.jsp HTTP/1.1" 200 1234 "https://example.com/" "Mozilla/5.0"
远程IP - 用户标识 用户 - [时间] "请求行" 状态码 字节数 "Referer" "User-Agent"
如果你看到 pattern="%h %l %u %t "%r" %s %b":
| 符号 | 含义 |
|---|---|
| %h | 客户端 IP |
| %l | 远程逻辑用户名(通常为 -) |
| %u | 认证用户 |
| %t | 时间 |
| %r | 请求行 |
| %s | HTTP 状态码 |
| %b | 响应字节数 |
| %{Referer}i | Referer |
| %{User-Agent}i | 浏览器 |
很多生产环境会替换 Tomcat 默认日志为:
日志格式就变成你自己配置的,例如:
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %msg%n
Linux 上 Tomcat 日志 = catalina.out(启动/错误日志) + localhost_access_log(访问日志,默认 combined 格式)
如果你愿意,我可以: