我正在瀏覽jetty logging一文,并試圖弄清楚列印的每個屬性的含義
。123.4.5.6 - - [27/Aug/2004:10:16:17 0000] "GET /jetty/tut/XmlConfiguration.html HTTP/1.1" 200 76793 "http://localhost:8080/jetty/tut/logging.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8"/p>
我已經得到了一些答案,但仍然無法弄清楚下面提到的一些問題。
- 123.4.5
- 123.4.5.6 : request.getRemoteAddr()
- dash(-) : 無法確定 。
- 破折號(-):無法弄清楚 。
- [27/Aug/2004:10:16:17 0000] : 時間戳 。
- GET : request.getMethod()
- jetty/tut/XmlConfiguration.html : request.getRequestURI()
- HTTP/1.1 : request.getProtocol()
- 200 : response.getStatus() 。
- 76793 : response.getHttpChannel().getBytesWritten() 。
- http://localhost:8080/jetty/tut/logging.html : 無法弄清
- Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8 : request.getHeader("User-Agent")
如果我對其他屬性也有錯誤,請糾正我。
uj5u.com熱心網友回復:
Jetty默認以NCSA格式登錄。據此,
- (2)將是RFC 931的 "用戶的遠程日志名稱" 。
- (3)將是 "用戶自己認證的用戶名" 。
不確定,但我認為其中任何一項都不會隨時有值。
- (10) 這是參考者(通過超鏈接導致此請求的頁面),資料在頭中 - 參見Stack Overflow question 2648984
uj5u.com熱心網友回復:
最近版本的Jetty用CustomRequestLog格式記錄請求。
它有2種默認的 "NCSA "格式輸出(以及其他一些格式和自定義格式的能力)
NCSA_FORMAT-"%{client}a - %u %t "%r" %s %O"的語法宣告。
EXTENDED_NCSA_FORMAT-NCSA_FORMAT" "%{Referer}i" "%{User-Agent}i""
因此,根據CustomRequestLog的檔案,這意味著以下輸出...
123.4.5.6 - - [27/Aug/2004:10:16:17 0000] "GET /jetty/tut/XmlConfiguration.html HTTP/1.1" 200 76793 "http://localhost:8080/jetty/tut/logging.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8"
實際上是NCSA的擴展格式之一。
像這樣分解...
123.4.5.6:%{client}a,這是request.getRemoteHost()。
-:-一個硬編碼的字串-在Jetty中,這個條目應該是 "遠程日志名稱用戶",但是由于Jetty不支持identd,我們沒有辦法填寫這個值(identd是老式的技術,從來沒有在http中被大量采用)-:%u是認證的用戶名,來自Jetty內部的API(例如:Request.getAuthentication()或Authentication.getUserIdentity()- 這只有在你的webapp使用Servlet安全/認證/授權時才有效 - 自定義認證技術不會有這個條目被填補。[27/Aug/2004:10:16:17 0000]:%t是Jetty API的Request.getTimeStamp(),當請求被決議完畢,但在其被分派到處理程式或webapp進行處理之前,它被設定在石頭上。"GET /jetty/tut/XmlConfiguration.html HTTP/1.1":"%r",這是HTTP中使用的原始 "請求行"。這是HTTP請求的第一行。(或request.getMethod()request.getOriginalURI()request.getProtocol())200:%s,這是從Jetty內部APIresponse.getCommittedMetadata().getStatus()獲得的回應的狀態(這個API的存在是因為HttpServletResponse是可變的,許多webapp傾向于在它被發送后修改它,這意味著我們記錄一個值,如果我們在這里使用標準Servlet API實際上并沒有發送) 。
76793:%O,這是作為回應的一部分在網路上發送的位元組,來自Jetty內部APIresponse.getHttpChannel().getBytesWritten()。
"http://localhost:8080/jetty/tut/logging.html":"%{Refer}i",這是請求Refer行(是的,它的拼寫不正確,但這里有古老的HTTP歷史,為什么是這樣的)。 它來自request.getHeader("Referer"),在許多情況下它可能是空的。"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8":"%{User-Agent}i"與上述相同,但用于User-Agent請求頭。
你可以用無數種方式來定制這個輸出,只要閱讀CustomRequestLog apidoc并創建一個你自己的格式,其中有你想要的東西和/或你正在尋找的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/308365.html
標籤:
