Tomcat的访问日志是靠org.apache.catalina.valves.AccessLogValve来控制的,你可以修改$tomcat/conf/server.xml来启用它 ($tomcat是Tomcat安装的目录)。AccessLogValve默认应该是注释掉的,简单的将其注释去掉,然后重启Tomcat就可以了。
以下是Tomcat默认的配置:
引用
<Valve className=“org.apache.catalina.valves.AccessLogValve”
directory=“logs” prefix=“localhost_access_log.” suffix=“.txt”
pattern=“common” resolveHosts=“false”/>
你可以设置日志保存的目录(directory),日志的文件名的前缀(prefix),后缀(suffix)和日志的具体格式。保存目录,文件名的前缀、后缀都很简单,一般默认设置也就可以了。resolveHost出于性能的考虑,一般也设为false. 但访问日志的格式(pattern)却有很多的选项供你选择。以下列出了一些基本的日志格式项:
引用
%a – 远程主机的IP (Remote IP address)
%A – 本机IP (Local IP address)
%b – 发送字节数,不包含HTTP头,0字节则显示 ‘-’ (Bytes sent, excluding HTTP headers, or ‘-’ if no bytes
were sent)
%B – 发送字节数,不包含HTTP头 (Bytes sent, excluding HTTP headers)
%h – 远程主机名 (Remote host name)
%H – 请求的具体协议,HTTP/1.0 或 HTTP/1.1 (Request protocol)
%l – 远程用户名,始终为 ‘-’ (Remote logical username from identd (always returns ‘-’))
%m – 请求方式,GET, POST, PUT (Request method)
%p – 本机端口 (Local port)
%q – 查询串 (Query string (prepended with a ‘?’ if it exists, otherwise
an empty string)
%r – HTTP请求中的第一行 (First line of the request)
%s – HTTP状态码 (HTTP status code of the response)
%S – 用户会话ID (User session ID)
%t – 访问日期和时间 (Date and time, in Common Log Format format)
%u – 已经验证的远程用户 (Remote user that was authenticated
%U – 请求的URL路径 (Requested URL path)
%v – 本地服务器名 (Local server name)
%D – 处理请求所耗费的毫秒数 (Time taken to process the request, in millis)
%T – 处理请求所耗费的秒数 (Time taken to process the request, in seconds)
你可以用以上的任意组合来定制你的访问日志格式,也可以用下面两个别名common和combined来指定常用的日志格式:
common – %h %l %u %t "%r" %s %b
combined -
%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"
另外你还可以将cookie, 客户端请求中带的HTTP头(incoming header), 会话(session)或是ServletRequest中的数据都写到Tomcat的访问日志中,你可以用下面的语法来引用。
%{xxx}i – 记录客户端请求中带的HTTP头xxx(incoming headers)
%{xxx}c – 记录特定的cookie xxx
%{xxx}r – 记录ServletRequest中的xxx属性(attribute)
%{xxx}s – 记录HttpSession中的xxx属性(attribute)
比如下面是实际的一个访问日志格式的配置:
<Valve className=“org.apache.catalina.valves.AccessLogValve”
directory=“logs” prefix=“phone_access_log.” suffix=“.txt”
pattern=“%h %l %T %t %r %s %b %{Referer}i %{User-Agent}i MSISDN=%{x-up-calling-line-id}i” resolveHosts=“false”/>
其中日志格式(pattern)指定为”%h %l %T %t %r %s %b %{Referer}i %{User-Agent}i MSISDN=%{x-up-calling-line-id}i“,则实际的访问日志中将会包括:
- %h – 远程主机名
- %l - 远程用户名,始终为 ‘-’
- %T - 处理请求所耗费的秒数
- %t – 访问日期和时间
- %r – HTTP请求中的第一行
- %s – HTTP状态码
- %b – 发送字节数,不包含HTTP头(0字节则显示 ‘-’)
- %{Referer}i – Referer URL
- %{User-Agent}i – User agent
- MSISDN=%{x-up-calling-line-id}i – 手机号
实际的访问日志如下:
xxx.xxx.xx.xxx – 0.270 [14/Jul/2008:13:10:53 +0800] POST /phone/xxx/gprs HTTP/1.1 200 91812 – SonyEricssonW890i/R1EA Profile/MIDP-2.1 Configuration/CLDC-1.1 MSISDN=11111111111
… …
xxx.xxx.xx.xxx – 0.083 [14/Jul/2008:21:20:55 +0800] POST /phone/xxx/gprs HTTP/1.1 200 404 – SonyEricssonW910i/R1FA Profile/MIDP-2.1 Configuration/CLDC-1.1 MSISDN=11111111111
分享到:
相关推荐
Tomcat 的访问日志可以记录访问的时间、IP、访问的资料等相关信息。我们可以通过编辑 ${catalina}/conf/server.xml 文件来配置 Tomcat 访问日志。例如,可以添加以下配置: ``` directory="logs" prefix=...
标题中的“在Tomcat的访问日志配置:awstats”涉及到的是Apache Tomcat服务器的访问日志管理和分析工具——AWStats。AWStats是一款开源的Web服务器统计分析软件,它可以实时或者定期分析服务器的访问日志,提供详细...
NULL 博文链接:https://jyao.iteye.com/blog/1266503
### Tomcat日志过大问题及解决方案 在日常的运维工作中,Tomcat作为一款广泛使用的Java应用服务器,其日志管理尤为重要。特别是在生产环境中,随着系统的持续运行,日志文件(如`catalina.out`)可能会不断增大,...
在这个`process_log`函数中,我们可以调用前面定义的`read_iis_logs`或针对Tomcat日志的解析函数,然后进行相应的分析。 **总结** 通过Python进行日志批量分析,我们可以高效地收集、整理和解读大量日志数据,从而...
在IT行业中,日志管理是系统运维和故障排查的关键环节,尤其对于服务器应用程序如Tomcat来说,日志记录能够提供宝贵的诊断信息。Tomcat作为一款流行的开源Java Servlet容器,其日志配置对于开发者和运维人员至关重要...
win7自动清除tomcat缓存及日志
为了帮助开发者更好地理解并解决这些问题,我们可以调整Tomcat的配置,使其输出更详细的错误日志。本篇文章将详细介绍如何进行这样的设置。 1. **启用Tomcat的详细错误日志** Tomcat的错误日志主要通过`logging....
Tomcat 不显示详细日志的问题解决方案 Tomcat 是一个流行的 Java Web 服务器,用于部署和运行基于 Java 的 Web 应用程序。但是,在某些情况下,Tomcat 的详细错误日志可能会消失,只报一个万恶的 Context [] ...
1. 创建配置文件:在`/etc/logrotate.d/`目录下创建一个针对Tomcat日志的配置文件,例如`/etc/logrotate.d/tomcat`。使用`vim`编辑器写入日志文件的路径,例如`/home/odysee/General/tomcat8.5/logs/catalina.out`。...
Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli...
本篇将详细讲解Tomcat日志设置的相关知识点,旨在提供一套实用的解决方案。 首先,Tomcat的日志主要分为两种类型:Catalina日志和Host日志。Catalina日志记录了Tomcat服务器整体运行的信息,而Host日志则针对每个...
标题中的“有关tomcat5和tomcat6的日志配置注释”主要涉及到的是Apache Tomcat服务器在两个不同版本(5和6)中的日志管理。Tomcat是Java Servlet和JavaServer Pages(JSP)的开源Web应用服务器,由Apache软件基金会...
"win系统下的tomcat日志按日期切割工具"指的是在Windows环境下对Tomcat日志进行自动切割的解决方案。通常,Linux系统中有一个名为`logrotate`的工具用于此目的,但在Windows上,我们可以使用类似功能的`cronolog`...
### Tomcat日志详细说明 #### 一、Tomcat日志概述 Apache Tomcat作为一款开源的Servlet容器,被广泛应用于Java Web应用的部署。它不仅支持Servlet还支持JSP等技术,是学习和开发Java Web项目的理想选择之一。为了...
"Linux中Tomcat日志切割"是指通过特定的工具或脚本,将Tomcat的日志文件`catalina.out`按照日期进行分割,以实现日志的有序管理和存储。通常,日志切割有助于保持日志文件的大小可控,避免单个文件过大导致的读写...
首先,我们要了解Tomcat的日志主要由`catalina.out`生成,这是一个默认的日志文件,包含了Tomcat启动和运行过程中的所有标准输出和错误输出。在外网部署中,为了防止日志文件过大,导致磁盘空间占用过多,我们需要...
Linux shell脚本定时清理tomcat日志文件 本文将详细介绍 Linux 环境中使用 shell 脚本来定时清理 Tomcat 日志文件的方法。该方法使用 cron 机制来实现每天自动切割日志文件,并删除 4 天前的日志文件。 知识点一:...
### Logstash收集Tomcat集群日志的解决方案 #### 背景介绍 随着企业规模的不断扩大,业务系统逐渐复杂化,对于系统运维人员而言,如何有效地监控和管理大量的日志数据变得至关重要。尤其是在Web应用程序中,例如...
如何从nginx,tomcat的日志中提取出有用的信息来,比如 实时分析统计访问量.zip