首先在默认情况下tomcat是不开启访问日志的。而且tomcat的日志文件路径默认存储在tomcat安装路径下的logs文件夹内。我们首先编辑 ${catalina}/conf/server.xml 文件。 解释 :${catalina} 是 tomcat 的安装目录。本篇中我们编辑文件路径为/usr/local/tomcat6/conf/server.xml。执行命令nano /usr/local/tomcat6/conf/server.xml。
在打开文件后,将文件内
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
的内容<!--与-->去掉,然后进行保存文件。
其中 directory是产生的目录 tomcat安装${catalina}作为当前目录pattern表示日志生产的格式,common是tomcat提供的一个标准设置格式。其具体的表达式为 %h %l %u %t "%r" %s %b。此处解释为:
%h 代表:访问的用户IP地址。
%l 代表: 访问逻辑用户名,通常返回'-'。
%u 代表: 访问验证用户名,通常返回'-'。
%t 代表: 访问日期。
%s 访问返回的http状态码。
%b 访问资源返回的流量。
待服务启动后,在浏览器进行项目的访问。然后我们查看logs文件夹内的localhost_access_log*.txt文件。可以看到已经有访问日志了。
然后我们修改日志格式,设置为我们常用的格式。其中修改pattern内的内容为:%h %l %u %t "%r" %s %b %T。此段格式代表的意思详细解释为:
%h 访问的用户IP地址。(不是客户端IP地址的哦,要想在Tomcat中要记录来访者真实IP,只需在日志模式中添加如下模式就行了:%{X-Real-IP}i)
%l 访问逻辑用户名,通常返回'-'。
%u 访问验证用户名,通常返回'-'。
%t 访问日期。
%r 访问的方式(post或者是get),访问的资源和使用的http协议版本。
%s 访问返回的http状态码。
%b 访问资源返回的流量。
%T 访问所使用的时间。
1
2
|
<Valve className= "org.apache.catalina.valves.AccessLogValve" directory= "logs" prefix= "localhost_access_log." suffix= ".txt" pattern= "%h %l %u %t "%r" %s %b %T" resolveHosts= "false" fileDateFormat= "yyyy-MM-dd.HH" />
|
然后进行重启tomcat,然后进行重新查看日志格式。可以看到已经出现我们要的日志。
fileDateFormat="yyyy-MM-dd.HH",会让日志文件按小时进行滚卷,
比默认的按天滚卷要好些,尤其是访问量大的网站,可以考虑写成fileDateFormat="yyyy-MM-dd.HH.mm",就会是每分钟一个日志文件了。
而且可以分别按Engine, Host, or Context,来记录自己的日志
注:
%h 访问的用户IP地址。(不是客户端IP地址的哦,要想在Tomcat中要记录来访者真实IP,只需在日志模式中添加如下模式就行了:%{X-Real-IP}i)
%h 访问的用户IP地址,如果nginx代理,那记录的就是nginx那台服务器IP,就是内网IP
1
2
3
|
< Valve className = "org.apache.catalina.valves.AccessLogValve" directory = "logs" prefix = "localhost_access_log." suffix = ".txt" pattern = "%{X-Real-IP}i %h %l %u %t "%r" %s %b %T" resolveHosts = "false"
fileDateFormat = "yyyy-MM-dd" />
|