使用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. 中介者(Mediator)模式

    中介者(Mediator)模式:用一个中介对象来封装一系列的对象交互,中介者使各个对象不需要显示的相互引用,从而使得耦合松散,而且可以独立的改变他们之间的交互 了解<迪米特法则>的朋友就知 ...

  2. .net Stream篇(五)

    MemoryStream 目录: 1 简单介绍一下MemoryStream 2 MemoryStream和FileStream的区别 3 通过部分源码深入了解下MemoryStream 4 分析Mem ...

  3. vs2015编译ffmpeg 出现错误rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 ___iob_func

    vs2015编译ffmpeg(版本3.0.2)引用外部库文件librtmp出现以下错误: rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 __imp__st ...

  4. MQ入门总结(一)消息队列概念和使用场景

    一.消息队列 消息即是信息的载体.为了让消息发送者和消息接收者都能够明白消息所承载的信息(消息发送者需要知道如何构造消息:消息接收者需要知道如何解析消息),它们就需要按照一种统一的格式描述消息,这种统 ...

  5. php复制目录

    function copyDir($dirSrc,$dirTo) { if(is_file($dirTo)) { echo '目标不是目录不能创建!'; return; } if(!file_exis ...

  6. Flask写web时cookie的处理

    本文来自网易云社区 作者:孙圣翔 flask是一个微型web开发框架,别看他微型,在github上排名还是挺高的. A microframework based on Werkzeug, Jinja2 ...

  7. iOS APP打包上传到APPstore的最新步骤

    一.前言: 作为一名iOS开发者,把辛辛苦苦开发出来的App上传到App Store是件必要的事.但是很多人还是不知道该怎么上传到App Store上 下面就来详细讲解一下具体流程步骤. 二.准备: ...

  8. kali linux之被动信息收集recon-ng

    开源的全特性的web侦查框架,基于python开发 命令格式与msf一致 使用方法:模块,数据库,报告 -h 帮助信息 -v 版本信息 -w 进入工作区,如果没有此工作区,则创建该工作区 -r 批量的 ...

  9. hosts是什么意思?Hosts文件有什么作用和功能?

    hosts是什么意思?Hosts文件有什么作用和功能? 熟悉网络的朋友们都会用到hosts文件,针对还不清楚hosts是什么意思以及hosts文件有什么功能和作用?针对此问题,本文就为大家进行解答   ...

  10. selenium+PhantomJS简单爬虫

    #!/usr/bin/env python # -*- coding: utf-8 -*- ''' Created on 2017年10月19日 @author: zzy ''' import tim ...