如何配置和使用Tomcat访问日志

配置位置在log下的server.xml,(tomcat容器)

<Engine defaultHost="localhost" name="Catalina">
< Host appBase="webapps" name="localhost">
< Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
< Valve className="org.apache.catalina.valves.AccessLogValve" fileDateFormat="yyyy-MM-dd" pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %{x-jphone-uid}i %{x-up-subno}i" prefix="localhost_access_log." suffix=".txt" directory="/var/log/accesslog" condition="drop"/>
< Context path="" docBase="cn_issue" debug="0"/>
< /Host>
< Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
< Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
< /Engine>

以下是摘抄正文

original link:http://forum.ospod.com/post-25088-1.fhtml;jsessionid=3361F472A5E12B9B9BEA1632EC50603A

Access Log Valve用来创建日志文件,格式与标准的web server日志文件相同。可以使用用日志分析工具对日志进行分析,跟踪页面点击次数、用户会话的活动等。Access Log Valve的很多配置和行为特性与File Logger相同,包括每晚午夜自动切换日志文件。Access Log Valve可以和任何Catalina容器关联,记录该容器处理的所有请求。
例子如下:

directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="%{X-Forwarded-For-Pound}i %l %u %t "%r" %s %b %T "%{HTTP_X_UP_CALLING_LINE_ID}i" "%{x-up-calling-line-id}i" "%{User-Agent}i"" resolveHosts="false"/>

className 实现的Java类名。必须被设置成org.apache.catalina.valves.AccessLogValve。
directory 存放日志文件的目录,可以是相对路径或者绝对路径。如果使用相对路径,是指相对于 $CATALINA_HOME的路径。如果不指定directory属性,缺省值是"logs"(相对于 $CATALINA_HOME)
pattern 需要记录的请求/响应不同信息域的格式布局。如果是"common"或者"combine",说明选择标准格式。下面会有关于配置这个属性的更多信息。
prefix 日志文件名的前缀。如果没有指定,缺省值是"access_log."。如果不想使用前缀,使用长度为0的字符串。

resolveHosts 将远端主机的IP地址通过DNS查询转换成主机名,设为true。如果为false,忽略DNS查询,报告远端的IP地址。

suffix 日志文件名的后缀。如果没有指定,缺省值是""。如果不想使用后缀,使用长度为0的字符串。

rotatable 缺省值为true,用来决定日志是否翻转的标志。如果为false,日志文件永远不翻转,并且忽略fileDataFormat。要谨慎使用。

condition 打开条件日志。如果设置了这个属性,只有在ServletRequest.getAttribute()是null的时候,才会为请求创建日志。比如,如果 condition设为junk,则只有在Servlet.getAttribute("junk")==null的时候,才会记录这个请求。使用过滤器,可以很容易设置(或者取消设置)不同请求的属性。
fileDateFormat 允许在日志文件名称中使用定制的日期格式。日志的格式也决定了日志文件翻转的频率。如果想每个小时翻转一次,将这个值设为yyyy-MM-dd.HH

pattern属性值由字符串常量和pattern标识符加上前缀"%"组合而成。pattern标识符加上前缀"%",用来代替当前请求/响应中的对应的变量值。目前支持如下的pattern:

  • %a - 远端IP地址
  • %A - 本地IP地址
  • %b - 发送的字节数,不包括HTTP头,如果为0,使用"-"
  • %B - 发送的字节数,不包括HTTP头
  • %h - 远端主机名(如果resolveHost=false,远端的IP地址)
  • %H - 请求协议
  • %l - 从identd返回的远端逻辑用户名(总是返回 '-')
  • %m - 请求的方法(GET,POST,等)
  • %p - 收到请求的本地端口号
  • %q - 查询字符串(如果存在,以 '?'开始)
  • %r - 请求的第一行,包含了请求的方法和URI
  • %s - 响应的状态码
  • %S - 用户的session ID
  • %t - 日志和时间,使用通常的Log格式
  • %u - 认证以后的远端用户(如果存在的话,否则为'-')
  • %U - 请求的URI路径
  • %v - 本地服务器的名称
  • %D - 处理请求的时间,以毫秒为单位
  • %T - 处理请求的时间,以秒为单位

结果举例如下:
- - - [29/Aug/2005:09:34:48 +0800] "GET /waptest/server?productid=qqportal&actionid=index&user_type=1&station=tencent&mid=12345678908888&mobile_no=13724179457&qazxcdew=1 HTTP/1.1" 404 710 0.015 "-" "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Opera 7.11 [zh-cn]"

- - - [29/Aug/2005:10:27:29 +0800] "OPTIONS / HTTP/1.1" 404 668 0.203 "-" "-" "Microsoft-WebDAV-MiniRedir/5.1.2600"

附录:server.xml

<?xml version='1.0' encoding='utf-8'?>
< Server>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443">
</Connector>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
</Connector>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" fileDateFormat="yyyy-MM-dd" pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %{x-jphone-uid}i %{x-up-subno}i" prefix="localhost_access_log." suffix=".txt" directory="/log/accesslog" condition="drop"/>
<Context path="" docBase="cn_issue" debug="0"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
< /Server>

http://www.cnblogs.com/pony/archive/2009/02/05/1384595.html

 

时间: 2025-01-09 11:59:18

如何配置和使用Tomcat访问日志的相关文章

tomcat访问日志-log访问日志文件里只有用户访问的记录,并没有搜索引擎的爬行记录?

问题描述 log访问日志文件里只有用户访问的记录,并没有搜索引擎的爬行记录? 阿里云的ECS云服务器,tomcat7,log访问日志"localhost_access_log.2015-12-22.txt"文件里面只有用户访问的记录,并没有搜索引擎的爬行记录,我查看了所有的日志文件,全部只有用户访问记录,可以确定的是每天搜索引擎蜘蛛有爬行,不知道为什么会这样? service.xml配置文件对log访问日志的配置是这样写的: prefix="localhost_access_

log-如何配置tomcat把访问日志也输出到tomcat命令窗口

问题描述 如何配置tomcat把访问日志也输出到tomcat命令窗口 目前我用的是tomcat7或8,请问各位配置把localhost_access_log.txt的日志也输出到tomcat命令窗口. tomcat命令窗口的日志存放在Tomcat 8.0logs目录下,该目录下有多个文件?,都是记录日志的,我发现 localhost_access_log.txt的?日志只会记录在该文件中,请问怎么配置让它也可以输出到tomcat命令窗口? 解决方案 配置Tomcat的访问日志格式化输出配置Tom

apache虚拟主机访问日志配置例子

  Linux系统配置方法: 将其改为  代码如下   ErrorLog "| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_error_log 86400 480″ CustomLog "| /usr/local/apache/bin/rotatelogs /home/logs/www/%Y_%m_%d_access_log 86400 480″ common ## 这是httpd.conf中的log日志代码:  代

virtualhost-apache配置VirtualHost后所有访问都转到tomcat了

问题描述 apache配置VirtualHost后所有访问都转到tomcat了 我希望达到的效果是访问 xx.com 依然用apache里面的内容,当访问ex1.xx.com的时候才是访问tomcat. 我的配置如下. 现在我访问xx.com也是访问到了tomcat,怎么办呢. ServerName ex1.xx.com ServerAdmin xxx@outlook.com ProxyPreserveHost On ProxyRequests Off ProxyPass / http://12

tomcat https 双向配置走外网访问不了

问题描述 tomcat https 双向配置走外网访问不了 公司接口要求走https协议,我用jdk自带的生成了服务端和客户端的证书. 部署项目的tomcat里配置是: maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:/up/server/serve

nginx访问日志并删除指定天数前的日志记录配置方法_nginx

说明: 操作系统:CentOS 站点1:bbs.jb51.net 站点2:sns.jb51.net Nginx安装路径:/usr/local/nginx Nginx配置文件路径:/usr/local/nginx/conf/nginx.conf 站点1配置文件路径:/usr/local/nginx/conf/vhost/bbs.jb51.net.conf 站点2配置文件路径:/usr/local/nginx/conf/vhost/sns.jb51.net.conf 目的: 1.对站点1和站点2的n

Nginx学习之自定义访问日志

写在开始 日志的重要性不言而喻,一般来说我们开发过程中会为每个项目定义自己的日志格式以及存储路径. 就我们普通的JAVAWEB项目来说,重要的日志一般输出并存放在Tomcat的log目录下,并区分日志输出级别.用于区分,查阅并统计相关日志信息. 当然,这不是重点,重点是很多公司,对于日志的重要性似乎并不是那么重视,当然这可能跟平台本身有一定的关系. 日志配置 其实分析Nginx日志,可以得到很多有用的数据,响应耗时的url.请求时间,各个时间段的请求量,并发量.配合使用ELK日志系统可以很好的呈

设计一个中间件的访问日志组件

对任何一个系统,一个强大的日志记录功能是相当重要且必要的,根据日志的记录可以及时掌握系统运行时的健康状态及故障定位.然而作为web容器存在另外一种日志--访问日志.访问日志一般会记录客户端的访问相关信息,包括客户端ip.请求时间.请求协议.请求方法.请求字节数.响应码.会话id.处理时间等等.通过访问日志可以统计访问用户的数量.访问时间分布等规律及个人爱好等等,而这些数据可以帮助公司在运营策略上做出抉择. 如果让你来设计一个访问日志组件你会如何来设计?你应该很快就会想到访问日志的核心功能就是将信

web日志中的频繁访问日志挖掘

web访问日志 主要是指用户在访问某网站的时候产生的日志信息,采集方式包括前端Javascript埋码采集和后端服务器日志采集两种. 前端采集目前主要以javascript为主,收集用户数据. 后端服务器日志根据网站架构,一般以nginx和tomcat等加上业务日志的采集为主. 对于数据的权威和准确性而言,应该首先以后端服务器产生的数据为主,配合前端采集的数据来进行整体的分析和挖掘. 日志分析流程 日志分析流程如下: 数据采集:包括埋码和业务数据收集两种. 数据传输:包括实时和离线传输两种. 存