配置Tomcat的访问日志格式化输出

按要求输出指定的访问日志格式

在tomcat的server.xml文件中,Host主机配置区域找到类似如下(Value标签元素)即为访问日志的配置:
1
2
3
4
5
6
7
8
< Host  name = "localhost"   appBase = "webapps"
             unpackWARs = "true"  autoDeploy = "true" >
     <!--...部分内容略..-->
     < Valve  className = "org.apache.catalina.valves.AccessLogValve"
         directory = "logs"
         prefix = "localhost_access_log."  suffix = ".txt"
         pattern = "%h %l %u %t &quot;%r&quot; %s %b"  />
</ Host >
其中的directory用于指定日志的存放路径,默认位于tomcat的logs目录中,例如我们可以修改成:
directory="c:/wwwlogs" 使日志放到c:\wwwlogs目录中去。
其中的prefix和suffic分别用于指定日志文件的前缀和后缀,不用我多说。
现在我们主要来看一下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记录用户的真实IP地址:

一、配置Nginx转发IP头:

在Nginx的server主机配置段中添加:
1
2
proxy_set_header      Host $host;
proxy_set_header      X-Real-IP $remote_addr;
说明:上面两行用于向tomcat发送真实的远端主机名和IP地址。其中的Host代表主机名, X-Real-IP代表主机IP,对于HTTP头部内容,这些变量是不区分大小写的。

二、配置Tomcat日志记录客户真实IP:

在Tomcat中要记录来访者真实IP,大家参考上面所述的tomcat日志配置语法,只需在日志模式中添加如下模式就行了: %{X-Real-IP}i
如下面完整的Tomcat日志配置段:
1
2
3
< Valve  className = "org.apache.catalina.valves.AccessLogValve"
directory = "c:/wwwlogs/"  prefix = "cluster."  suffix = ".log"
pattern = "%{X-Real-IP}i %u %t %r %s %b"  resolveHosts = "false"  />
注意:上两两处修改后,您应该重新启动Nginx和Tomcat服务,以使您的修改生效。这样,当有新的请求过来时,便可以在Tomcat日志文件中记录访客的真实IP地址了。

文章参考:http://www.jdiy.org/read.jd?id=y0hab3qs03

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值