本文介绍: 一般的web server两部日志:一是运行日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息;二是访问日志信息,他是记录访问时间ipurlsessionId信息。下面来介绍使用tomcat记录访问日志使用这个是在如果想自己定义书写文件格式可以对上面的pattern里面内容进行修改可以修改的参数有以下数据

一般的web server两部日志
一是运行日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息
二是访问日志信息,他是记录的访问的时间ipurlsessionId等信息。

下面来介绍使用tomcat记录访问日志的使用,这个是在tomcat/conf/server.xml文件需要配置如下配置

<!-- Access log processes all example.
     Documentation at: /docs/config/valve.html
     Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
pattern="%h %l %u %t &amp;quot;%r&amp;quot; %s %b" prefix="localhost_access_log" 
suffix=".txt"/&gt;

有的版本可能默认开启记录,只需要把这解注释就好了,记录的文件默认放在/tomcat/logs/${file},默认每天产生一个文件,产生的文件类似于:

localhost_access_log.2023-06-11.txt
localhost_access_log.2023-06-12.txt
localhost_access_log.2023-06-13.txt

日志文件里面内容类似于:

66.249.55.170 - - [11/Jun/2023:00:14:51 +0800] "GET /login HTTP/1.1" 200 6541
101.32.44.117 - - [11/Jun/2023:00:11:56 +0800] "-" 400 -
102.32.11.117 - - [11/Jun/2023:00:12:56 +0800] "-" 401 -
101.32.22.117 - - [12/Jun/2023:00:13:57 +0800] "-" 404 -
103.32.33.117 - - [12/Jun/2023:00:14:57 +0800] "-" 302 -

如果想自己定义书写文件格式可以对上面的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 - 处理请求的时间,以秒为单位

// 另外还可以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)

附:做一个在线分析访问日志的页面

假设pcaccess.log是某应用的accesslog

a.查看日志中访问次数最多的前10个IP

cat pcaccess.log|cut -d ’ ’ -f 1 |sort |uniq –c | sort -nr | awk ‘{print $0 }’ | head -n 10 |less

b.查看日志中出现100次以上的IP

#cat pcaccess.log |cut -d ’ ’ -f 1 |sort |uniq -c | awk ‘{if ($1 > 100) print $0}’|sort -nr |less

c.查看最近访问量最高的URL

假设第九个位置url,则命令如下:
#cat pcaccess.log |tail -10000|awk ‘{print $9}’|sort|uniq -c|sort -nr|less

左边数字是出现的次数右边的参数是对应的URL

d.查看最近访问量最高的页面(.jsp)

#cat pcaccess.log |awk ‘{print $9}’|grep ‘.jsp’|sort|uniq -c|sort -nr |head -n 10

e.查看日志中访问超过100次的页面

#cat pcaccess.log | cut -d ’ ’ -f 9| sort |uniq -c | awk ‘{if ($1 > 100) print $0}’ | less

f.某天访问网站独立IP有多少

#cat pcaccess.log|grep ‘17/Oct/2012’|grep “******”|wc|awk ‘{print $1}’|uniq

g.统计某类url,一天的访问次数

#cat pcaccess.log |grep ‘17/Oct/2012’|awk ‘{print $9}’|grep ‘/model.html’|wc -l

h.列出传输时间超过 3 秒的文件

首先把请求时间和文件取出来(假如倒数第四个域是请求时间)

#cat pcaccess.log|awk ‘{print

9

9 ,

9(NF-4)}’ >timeurl

找出传输时间超过3s的文件

#cat timeurl|awk ‘($NF > 3){print $1,$2}’

找出传输时间超过3s的文件并且出现次数最多的前20个
#cat timeurl|awk ‘($NF > 3){print $1}’|sort -n|uniq -c|sort -nr|head -20

i.列出传输最大的几个exe文件(分析下载站的时候常用)

#cat pcaccess.log |awk ‘($7~/.exe/){print $14,$9}’|sort -nr|head -20

j.统计404的连接

#awk ‘($12 ~/404/)’ pcaccess.log | awk ‘{print $12,$9}’ | sort|uniq -c|sort -nr

k.统计http status

#cat pcaccess.log |awk ‘{counts[$(12)]+=1}; END {for(code in counts) print code, counts[code]}’
#cat pcaccess.log |awk ‘{print $12}’|sort|uniq -c|sort -rn

统计意向 转载于 https://blog.csdn.net/weixin_34406796/article/details/93072464

页面制作中,敬请期待…

原文地址:https://blog.csdn.net/qq_26599807/article/details/131430927

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_33910.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注