apache&tomcat access访问日志
来源:互联网 发布:mac mnmp 一键安装包 编辑:程序博客网 时间:2024/05/22 15:11
apache日志一般有两种:访问日志和错误日志
错误日志一般分位emerg、alert、crit、error、warn、notice、info、debug,紧急程度依次降低。一般工程出问题了都会选择通过查看错误日志分析原因。
本次主要探讨访问日志。。
如果你使用的是纯Apache服务器,那么访问日志在Apache根目录的conf文件夹内的httpd.conf文件中配置。
如果你使用的是Apache tomcat服务器,那么访问日志在Apache根目录的conf文件夹内的server.xml文件中配置。
由于两者并没什么大的差异,本文仅以tomcat为例。
tomcat中首先在server.xml文件中配置如下:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="combined" prefix="localhost_access_log." suffix=".txt" fileDateFormat="yyyy-MM-dd.HH" resolveHosts="false"/>
className:直接照抄值org.apache.catalina.valves.AccessLogValve即可,Tomcat依靠此java类实现对访问日志文件的控制。
directory:保存的日志文件路径,前提是相对于tomcat的当前路径。可不设定,缺省值是“logs”(相对于$CATALINA_HOME)
prefix:保存的日志文件名前缀。
suffix:保存的日志文件名后缀。
resolveHosts:如需将将远端主机的IP地址通过DNS查询转换成主机名,则设为true。如果为false,忽略DNS查询,直接报告远端的IP地址。 出于性能考虑最好设为false。
fileDateFormat:使用定制的日期格式决定日志文件翻转的频率。如此处设为yyyy-MM-dd.HH则每小时保存一个。去掉的话。默认是一天。最好直接去掉即可,每天凌晨更新保存一个当天的日志文件。
rotatable:缺省值为true,用来决定日志是否翻转的标志。如果为false,日志文件永远不翻转,并且忽略fileDataFormat。要谨慎使用。最好不要设置,直接使用缺省值。否则日志文件永不翻转,单一文件过大无任何意义,还会给分析使用带来极大不便。
pattern:属性值由字符串常量和pattern标识符加上前缀"%"组合而成。pattern标识符加上前缀"%",用来代替当前请求/响应中的对应的变量值。目前支持如下的pattern:
- %a - 远端IP地址
- %A - 本地IP地址
- %b - 发送的字节数,不包括HTTP头,如果为零即没有发送字节,使用"-"
- %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 - 处理请求的时间,以秒为单位
combined - %h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"
另外,还可以将request请求的查询参数、session会话变量值、cookie值或HTTP请求/响应头内容的变量值等内容写入到日志文件。
它仿照了apache的语法:
%{XXX}i xxx代表传入的头(HTTP Request)
%{XXX}c xxx代表特定的Cookie名
%{XXX}r xxx代表ServletRequest属性名
所以pattern可以写成:
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""
或者直接使用最简单的:
pattern="common"
注意:每次更改请重启tomcat服务器
我们可以参看一条实例进行具体分析:
pattern="common"
或者pattern="%h %l %u %t "%r" %s %b"
上文已经提到以上两种配置含义相同,当pattern如此设置时实际的一条访问记录如下(此后均为转载):
- apache&tomcat access访问日志
- apache服务器访问日志access.log设置
- apache服务器访问日志access.log设置
- tomcat访问(access)日志配置与查询
- 通过Nginx,Tomcat访问日志(access log)记录请求耗时
- tomcat访问(access)日志配置与查询
- 通过Nginx,Tomcat访问日志(access log)记录请求耗时
- tomcat访问(access)日志配置、记录Post请求参数
- apache访问日志分析
- Apache访问日志详解
- apache访问日志
- Apache访问日志详解
- Apache配置访问日志
- Apache访问日志详解
- Apache访问日志分类
- Apache访问日志详解
- Apache 配置访问日志
- Apache访问日志
- 用vs2008编写和调试linux程序 ----VisualGDB 使用教程
- opencv图像拼接demo
- Shell脚本中判断输入参数个数的方法
- [00102]字符串开头或结尾匹配
- Http请求中Content-Type讲解以及在Spring MVC注解中produce和consumes配置详解
- apache&tomcat access访问日志
- 健康检查
- SQL--考试错题分析
- 算法竞赛入门经典 习题2-9 分数化小数(decimal)
- Hibernate— 投影查询
- C#绘画圆角矩形的两种方式
- 一读一写情况下,无锁环形队列如何实现?
- 【iOS开发】OC变量和基本数据类型-精度
- std::list的pop_front()及front()