SpringBoot如何配置tomcat access日志
Spring Boot使用嵌入式的Tomcat作為默認(rèn)的Web服務(wù)器,可以通過配置文件方式來開啟和定制access日志。access日志記錄了每一個(gè)HTTP請求的信息,包括請求的來源、請求的資源、響應(yīng)狀態(tài)碼等,常常用來做數(shù)據(jù)統(tǒng)計(jì)、性能監(jiān)控,比如通過分析訪問日志,可以發(fā)現(xiàn)性能瓶頸和優(yōu)化機(jī)會(huì),提升應(yīng)用的響應(yīng)速度等。
tomcat access日志配置
以yml文件為例:
server: # 配置access日志 tomcat: accesslog: enabled: true renameOnRotate: true pattern: '%{yyyy-MM-dd HH:mm:ss}t "%h" "%{X-FORWARDED-FOR}i" "%l" "%u" "%m" "%U" "%H" "%s" "%b" "%q" "%{Referer}i" "%{User-Agent}i" "%I" "%T"' directory: /logs/access/ prefix: access_log suffix: .log
參數(shù)說明:
enabled 是否開啟access日志
renameOnRotate 是否按天切割日志。切割后的日志要按yyyyMMdd重命名
pattern 日志打印格式
directory 日志保存文件路徑
prefix 日志的前綴
suffix 日志的后綴
除了上面幾個(gè)配置參數(shù),其他常用參數(shù)還有:
file-date-format: .yyyy-MM-dd basedir: d:/logs rotate: true 含義如下: file-date-format 在日志文件名稱中使用定制的日期格式,日志的格式也決定了日志文件翻轉(zhuǎn)的頻率。如果想每小時(shí)翻轉(zhuǎn)一次,可以定義為“yyyy-MM-dd.HH”; basedir 日志文件存放的基礎(chǔ)目錄 rotate 指定是否啟用日志輪轉(zhuǎn)。默認(rèn)為true。這個(gè)參數(shù)決定是否需要切換切換日志文件,如果被設(shè)置為false,則日志文件不會(huì)切換,即所有文件打到同一個(gè)日志文件中,并且file-date-format參數(shù)也會(huì)被忽略
pattern參數(shù)配置
比較復(fù)雜的是pattern參數(shù)配置,它由一系列的格式標(biāo)識符組成,這些標(biāo)識符用于從當(dāng)前請求和響應(yīng)中提取信息
%a - 遠(yuǎn)程IP地址
%A - 本地IP地址
%b - 發(fā)送的字節(jié)數(shù)(Bytes sent), 不包括HTTP headers的字節(jié),如果為0則展示'-'
%B - 發(fā)送的字節(jié)數(shù)(Bytes sent), 不包括HTTP headers的字節(jié)
%h - 遠(yuǎn)程主機(jī)名稱(如果resolveHosts為false則展示IP)
%H - 請求協(xié)議
%l - 遠(yuǎn)程用戶名,始終為'-'(Remote logical username from identd)
%m - 請求的方法(GET, POST等)%p - 接受請求的本地端口
%q - 查詢字符串,如果存在,有一個(gè)前置的'?'
%r - 請求的第一行(包括請求方法和請求的URI)
%s - response的HTTP狀態(tài)碼(200,404等)%S - 用戶的session ID
%t - 日期和時(shí)間,Common Log Format格式
%u - 被認(rèn)證的遠(yuǎn)程用戶, 不存在則展示'-'
%U - 請求URL路徑%v - 本地服務(wù)名
%D - 處理請求的時(shí)間,單位為毫秒
%T - 處理請求的時(shí)間,單位為秒%I - 當(dāng)前請求的線程名(can compare later with stacktraces)
%I - 當(dāng)前請求線程名(可與堆棧跟蹤進(jìn)行比較)。
access log 也支持將cookie、header、session或者其他在ServletRequest中的對象信息打印到日志中,其配置遵循Apache配置的格式({xxx}指值的名稱):
- %{xxx}i - 記錄名稱為xxx的請求頭的值。
- %{xxx}o - 記錄名稱為xxx的響應(yīng)頭的值。
- %{xxx}c - 記錄名稱為xxx的Cookie的值。
- %{xxx}r - 記錄名稱為xxx的ServletRequest屬性的值。
- %{xxx}s - 記錄名稱為xxx的HttpSession屬性的值。
- %{xxx}p - 記錄本地(服務(wù)器)端口(xxx==local)或遠(yuǎn)程(客戶端)端口(xxx=remote)。
- %{xxx}t - 使用增強(qiáng)的SimpleDateFormat模式xxx記錄請求結(jié)束時(shí)的時(shí)間戳。
pattern也可以設(shè)置指定的模式,如下:
- ommon 模式: %h %l %u %t "%r" %s %b 這是Common Log Format的定義,記錄了客戶端IP地址、遠(yuǎn)程登錄名、用戶、時(shí)間、請求的第一行、狀態(tài)碼和響應(yīng)字節(jié)數(shù)。
- combined 模式: %h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" 在common模式的基礎(chǔ)上,增加了Referer和User-Agent請求頭的信息。
參考鏈接:
https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html
到此這篇關(guān)于SpringBoot配置tomcat access日志的文章就介紹到這了,更多相關(guān)SpringBoot配置tomcat access日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
多個(gè)SpringBoot項(xiàng)目采用redis實(shí)現(xiàn)Session共享功能
這篇文章主要介紹了多個(gè)SpringBoot項(xiàng)目采用redis實(shí)現(xiàn)Session共享,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Java使用MulticastSocket實(shí)現(xiàn)群聊應(yīng)用程序
這篇文章主要為大家詳細(xì)介紹了Java使用MulticastSocket實(shí)現(xiàn)群聊應(yīng)用程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Java 數(shù)組轉(zhuǎn)List的四種方式小結(jié)
最近看了下數(shù)組轉(zhuǎn)List的實(shí)現(xiàn)方法,總共有4種,本文就詳細(xì)的介紹一下,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09@Transactional解讀(作用、失效場景與解決方式)
這篇文章主要介紹了關(guān)于@Transactional作用、失效場景與解決方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Java實(shí)現(xiàn)簡單局域網(wǎng)聊天室
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡單局域網(wǎng)聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06springboot 配置DRUID數(shù)據(jù)源的方法實(shí)例分析
這篇文章主要介紹了springboot 配置DRUID數(shù)據(jù)源的方法,結(jié)合實(shí)例形式分析了springboot 配置阿里DRUID數(shù)據(jù)源的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2019-12-12Java使用pdfbox實(shí)現(xiàn)給pdf文件加圖片水印
有時(shí)候需要給pdf加水印,市面上工具都是收費(fèi)的要會(huì)員,還是自食其力吧;嘗試過 spire.pdf.free 那個(gè)超過10頁就不行了!所以本文還是使用了pdfbox,感興趣的可以了解一下2022-11-11MyBatis-Plus邏輯刪除和字段自動(dòng)填充的實(shí)現(xiàn)
本文主要介紹了MyBatis-Plus邏輯刪除和字段自動(dòng)填充的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08