简体   繁体   中英

Concise logging of HTTP request in Tomcat

I have a HTTP API implemented using JAX-RS and running on Tomcat. Is there a way to automatically and concisely log every HTTP request so that I don't need to do it manually on every JAX-RS resource class method? I'm looking for a log like:

/item/1 GET 200
/item POST 500

I tried to enable RequestDumpFilter, but I get a very verbose log for each HTTP request. For instance, a HTTP request that returned an error logs:

02-Jun-2021 15:09:57.417 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1         requestURI=/
02-Jun-2021 15:09:57.417 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1           authType=null
02-Jun-2021 15:09:57.417 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1  characterEncoding=null
02-Jun-2021 15:09:57.417 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1      contentLength=-1
02-Jun-2021 15:09:57.417 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1        contentType=null
02-Jun-2021 15:09:57.418 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1        contextPath=
02-Jun-2021 15:09:57.419 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             cookie=csrftoken=my-csrf-token
02-Jun-2021 15:09:57.419 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             cookie=sessionid=kxm3lt8q2p7faeur88xrvxm4gdtpy66u
02-Jun-2021 15:09:57.420 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=host=localhost:8080
02-Jun-2021 15:09:57.420 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=connection=keep-alive
02-Jun-2021 15:09:57.420 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=sec-ch-ua=" Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"
02-Jun-2021 15:09:57.421 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=sec-ch-ua-mobile=?0
02-Jun-2021 15:09:57.421 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=upgrade-insecure-requests=1
02-Jun-2021 15:09:57.421 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
02-Jun-2021 15:09:57.421 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
02-Jun-2021 15:09:57.421 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=sec-fetch-site=none
02-Jun-2021 15:09:57.422 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=sec-fetch-mode=navigate
02-Jun-2021 15:09:57.422 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=sec-fetch-user=?1
02-Jun-2021 15:09:57.422 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=sec-fetch-dest=document
02-Jun-2021 15:09:57.422 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=accept-encoding=gzip, deflate
02-Jun-2021 15:09:57.422 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=accept-language=en-US,en;q=0.9,it;q=0.8,es;q=0.7,la;q=0.6
02-Jun-2021 15:09:57.423 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             header=cookie=csrftoken=wzBTPrn8SL46udrJo3E9LAjsGed9SpPr3AwhTtgNntM9gCEGEATfMsIK3bVkAjhf; sessionid=kxm3lt8q2p7faeur88xrvxm4gdtpy66u
02-Jun-2021 15:09:57.424 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             locale=en_US
02-Jun-2021 15:09:57.424 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             method=GET
02-Jun-2021 15:09:57.425 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1           pathInfo=null
02-Jun-2021 15:09:57.425 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1           protocol=HTTP/1.1
02-Jun-2021 15:09:57.425 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1        queryString=null
02-Jun-2021 15:09:57.425 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1         remoteAddr=10.0.2.2
02-Jun-2021 15:09:57.425 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1         remoteHost=10.0.2.2
02-Jun-2021 15:09:57.425 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1         remoteUser=null
02-Jun-2021 15:09:57.425 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1 requestedSessionId=null
02-Jun-2021 15:09:57.425 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1             scheme=http
02-Jun-2021 15:09:57.425 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1         serverName=localhost
02-Jun-2021 15:09:57.426 INFO [http-nio-8080-exec-1] org.apache.catalina.filters.RequestDumperFilter.doLog http-nio-8080-exec-1         serverPort=8080

You are looking for what we call an "access log".

You basically have 2 options:

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM