【Tomcat】Tomcat访问日志格式化为json

为了增加 Tomcat 访问日志的可读性,我们一般会选择修改默认的访问日志格式,将访问日志的记录格式修改为Json格式的。

修改server.xml文件中的配置,如下(红色部分):

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="access" suffix=".log"
               pattern="{&quot;requestTime&quot;:&quot;%t&quot;,&quot;clientIP&quot;:&quot;%h&quot;,&quot;threadID&quot;:&quot;%I&quot;,&quot;protocol&quot;:&quot;%H&quot;,&quot;requestMethod&quot;:&quot;%r&quot;,&quot;requestStatus&quot;:&quot;%s&quot;,&quot;sendBytes&quot;:&quot;%b&quot;,&quot;queryString&quot;:&quot;%q&quot;,&quot;responseTime&quot;:&quot;%Dms&quot;,&quot;partner&quot;:&quot;%{Referer}i&quot;,&quot;agentVersion&quot;:&quot;%{User-Agent}i&quot;}"
        />

修改后,重启Tomcat服务,使用curl命令访问Tomcat服务器中部署的一个小应用, 然后我们就可以发现我们自定义的json日志出现了!

原始json日志:

{"requestTime":"[28/Dec/2021:11:11:28 +0800]","clientIP":"192.168.223.101","threadID":"Thread-9","protocol":"HTTP/1.1","requestMethod":"GET /haweb/index.html?user=cnskylee HTTP/1.1","requestStatus":"200","sendBytes":"1683","queryString":"?user=cnskylee","responseTime":"2ms","partner":"-","agentVersion":"curl/7.29.0"}

格式化后的json日志:

{
    "requestTime": "[28/Dec/2021:11:11:28 +0800]",
    "clientIP": "192.168.223.101",
    "threadID": "Thread-9",
    "protocol": "HTTP/1.1",
    "requestMethod": "GET /haweb/index.html?user=cnskylee HTTP/1.1",
    "requestStatus": "200",
    "sendBytes": "1683",
    "queryString": "?user=cnskylee",
    "responseTime": "2ms",
    "partner": "-",
    "agentVersion": "curl/7.29.0"
}
 

这样日志的可读性明显增强了很多!

附:Tomcat访问日志的格式代码以及代码含义说明

%a   这是记录访问者的IP,在日志里是127.0.0.1
%A   这是记录本地服务器的IP,在日志里是192.168.254.108
%b   发送信息的字节数,不包括http头,如果字节数为0的话,显示为-
%B   发送信息的字节数,不包括http头。
%h   服务器的名称。如果resolveHosts为false的话,这里就是IP地址了,例如我的日志里是10.217.14.16
%H   访问者的协议,这里是HTTP/1.0
%l   官方解释:Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)(always returns '-')
%m   访问的方式,是GET还是POST
%p   本地接收访问的端口 
%q   比如你访问的是aaa.jsp?bbb=ccc,那么这里就显示?bbb=ccc,就是querystring的意思
%r   First line of the request (method and request URI) 请求的方法和URL
%s   http的响应状态码 
%S   用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID
%t   请求时间
%u   得到了验证的访问者,否则就是"-"
%U   访问的URL地址,我这里是/rightmainima/leftbott4.swf
%v   服务器名称,可能就是你url里面写的那个吧,我这里是localhost
%D   Time taken to process the request,in millis,请求消耗的时间,以毫秒记
%T   Time taken to process the request,in seconds,请求消耗的时间,以秒记 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cnskylee

技术分享我是认真的,期待您打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值