使用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我也懒得打马赛克了,问题不大(●'◡'●)

如果想继续深入了解的话, 可以点击这里

最后打波广告,欢迎来我新搭建的小窝玩耍 http://asche.top/

博客经常性的炸,我也很无奈了╯︿╰

Tomcat配置自定义访问日志 --- 获取请求头部信息的更多相关文章

  1. tomcat配置根目录访问后,部署后第一次访问会出现tomcat的默认界面而非项目首页

    tomcat配置根目录访问后,部署后第一次访问会出现tomcat的默认界面而非项目首页,而重启后会正常,这个原因是因为在配置文件中有如下配置,造成项目加载两次 <Host name=" ...

  2. Centos下Nginx配置WEB访问日志并结合shell脚本定时切割

    在一个成熟的WEB系统里,没有日志管理是不可以的,有了日志,可以帮助你得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某个服务或server的性能瓶颈等. ...

  3. Nginx 笔记与总结(4)配置 server 访问日志

    打开 nginx.conf: [root@localhost ~]# cd /usr/local/nginx/conf [root@localhost conf]# vim nginx.conf 在默 ...

  4. Spring Boot 2 配置服务器访问日志

    Tomcat控制台中看到的日志是服务器的日志,而服务器访问日志则是记录服务处理的请求信息. 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1.8 1.新建一个名 ...

  5. tomcat和springboot访问日志及分析

    1.Tomcat设置访问日志 <Host name="localhost" appBase="webapps" unpackWARs="true ...

  6. tomcat配置不用访问工程名

    <Host name="localhost" appBase="/server/webapps" unpackWARs="true" ...

  7. 本地测试Tomcat配置Https访问

    一.tomcat开启HTTPS配置 1) 准备证书 使用jdk工具keytool生成一个ssl测试用证书, 一路按照提示操作输入即可 keytool -genkey -alias tomcat -ke ...

  8. sharepoint 2010自定义访问日志列表设置移动终端否和客户端访问系统等计算列的公式

    上个月本人开发和上线了一个在SharePoint 2010上基于HTML5的移动OA网站,后端服务采用自定义的基于AgilePoint工作流引擎的Sharepoint Web服务,前端主要采用Jque ...

  9. Apache配置 5.访问日志不记录静态文件

    介绍:项目中的CSS.图片.js都是静态文件.一般会将静态文件放到一个单独的目录中,以方便管理. 1. 配置 # vim /usr/local/apache2.4/conf/extra/httpd-v ...

随机推荐

  1. 今天遇到的传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确的解决方案

    传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确.参数 3 ("@UserName"): 数据类型 0xE7 的数据长度或元数据长度无效. 今天在做数据同步的时候遇 ...

  2. 微信Token验证

    /// <summary> /// 微信验证 /// </summary> /// <param name="echostr"></par ...

  3. 严选 Android 路由框架优化(上篇)

    0 背景 早前严选 Android 工程,使用原生 Intent 方式做页面跳转,为规范参数传递,做了编码规范,使用静态方法的方式唤起 Activity public static void star ...

  4. 在Linux环境下的卸载Oracle11G操作

    1.使用SQL*PLUS停止数据库[oracle@OracleTest oracle]$ sqlplus /nolog SQL> connect / as sysdba SQL> shut ...

  5. C# WinForm Webbrowser 强制所有网页链接在同一页面打开或者在TabControl中弹出新窗口(续)

    上面那个文写的如同粑粑一样 效果图 Winfrom 中添加这个类就好了 using System; using System.Collections.Generic; using System.Com ...

  6. 数据结构之BF算法,kmp算法,三元组,十字链表总结

    在这一章中,老师教了我们四种数据结构:BF算法,kmp算法,三元组和十字链表:还给我们讲了2019年团体天体赛中T1-8的AI题 1.对于BF和kmp算法,老师除了在课堂上讲解算法的主要核心思想外,还 ...

  7. django 部署到Ubuntu安装MYSQL56

    阿里云 Ubuntu 14.04 安装mysql 5.6 1.升级apt-get sudo apt-get update 2. 安装mysql5.6版本 apt-get install mysql-s ...

  8. [USACO06DEC]牛的野餐Cow Picnic DFS

    题目描述 The cows are having a picnic! Each of Farmer John's K (1 ≤ K ≤ 100) cows is grazing in one of N ...

  9. jQuery 遍历 - closest() 方法

    jQuery 遍历参考手册 实例 本例演示如何通过 closest() 完成事件委托.当被最接近的列表元素或其子后代元素被点击时,会切换黄色背景: $( document ).bind("c ...

  10. java基础_02

    一.this和super 作用: this:区分成员变量和局部变量 super:区分父类的成员变量和局部变量 用法: this.成员变量名://访问本类的成员变量 this.成员方法名()://访问本 ...