使用tomcat,搭建完个人网站后,默认记录来访游客的信息是十分有限的,主要有ip和路径以及方法等。 有时候为了获取更多来访信息,比如请求的头部信息,这个时候就需要我们手动配置log了。 开始
进入Tomcat的根目录,然后 ---> conf ---> context.xml ,修改这个context.xml文件,在它Context标签内加上下面这段代码
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="headers" suffix=".txt" pattern="%t --- %a --- %U --- User-Agent:%{User-Agent}i --- Cookie:%{Cookie}i " resolveHosts="false" />其中directory是文件目录,文件前缀为headers,后缀为.txt,表明为文本文件,然后关键在于pattern这一段了:
里面就是日志记录的格式,这里就根据个人喜好来自定义了; 百分号%加上指定字母有特定的含义,比如%t就代表访问的时间,%a表示来访者的ip, %U为访问的路径。
需要注意的是%{header}i 指请求的对应头部,如%{User-Agent}i 就代表user-agent头部,如果请求中没有的话,它就为空。
这里有个问题,即没有直接显示访问请求中全部头部的操作,用StackOverflow一哥们的话说就是
There's no way out of the box
翻译过来就是: 没有开箱即用的方法。非要实现只能另外想办法了。
这里附上pattern中相应的字母代表的含义
%a - 远程IP地址
%A - 本地IP地址
%b - 发送的字节数,不包括HTTP头,或“ - ”如果没有发送字节
%B - 发送的字节数,不包括HTTP头
%h - 远程主机名
%H - 请求协议
%l (小写的L)- 远程逻辑从identd的用户名(总是返回' - ')
%m - 请求方法
%p - 本地端口
%q - 查询字符串(在前面加上一个“?”如果它存在,否则是一个空字符串
%r - 第一行的要求
%s - 响应的HTTP状态代码
%S - 用户会话ID
%t - 日期和时间,在通用日志格式
%u - 远程用户身份验证
%U - 请求的URL路径
%v - 本地服务器名
%D - 处理请求的时间(以毫秒为单位)
%T - 处理请求的时间(以秒为单位)
%I (大写的i) - 当前请求的线程名称
上面添加完成后,重启Tomcat,之后,在相应目录就会生成之前你定义的文件,我这里就是在conf目录下多了个headers.----.--.--.txt,-代表相应日期。随便访问下网站,就会发现里面一下多出了好多预期的内容:
cookie我也懒得打马赛克了,问题不大(●'◡'●)
如果想继续深入了解的话, 可以
最后打波广告,欢迎来我新搭建的小窝玩耍
博客经常性的炸,我也很无奈了╯︿╰