javascript
Spring Boot内嵌的tomcat日志
Spring Boot本身附帶一個嵌入式Tomcat服務(wù)器,非常方便。但是在默認(rèn)情況下是無法看到Tomcat的日志。
在本文中,將介紹如何通過配置Spring Boot來顯示Tomcat的內(nèi)部日志和訪問日志。
Tomcat日志類型
嵌入式Tomcat存儲兩種類型的日志:
- 訪問日志 Access Log
- 內(nèi)部服務(wù)器日志
訪問日志保存應(yīng)用程序處理的所有請求的記錄。這些日志可用于跟蹤頁面命中計數(shù)和用戶會話活動等內(nèi)容。而內(nèi)部服務(wù)器日志將幫助我們解決運行中的應(yīng)用程序的任何問題。
訪問日志
默認(rèn)情況下,是未啟用訪問日志的。我們可以通過向application.properties添加屬性來輕松啟用它們:
server.tomcat.accesslog.enabled=true同樣,也可以使用VM參數(shù)來啟用訪問日志:
java -jar -Dserver.tomcat.basedir=tomcat -Dserver.tomcat.accesslog.enabled=true app.jar這些日志文件將在臨時目錄中創(chuàng)建。 例如,在Windows上,訪問日志的目錄將類似于AppDataLocalTemp omcat.2142886552084850151.40123logs
日志格式
默認(rèn)訪問日志的格式如下:
%h %l %u %t "%r" %>s %b它的含義是:
%h - 發(fā)送請求的客戶端IP; %l - 用戶的身份; %u - 由HTTP身份驗證確定的用戶名; %t - 收到請求的時間; %r - 來自客戶端的請求URL; %> s - 從服務(wù)器發(fā)送到客戶端的狀態(tài)代碼,如 200; %b -客戶端響應(yīng)的大小,或者這些請求的響應(yīng)大小;由于請求是沒有經(jīng)過身份驗證的用戶,因此%l和%u打印了破折號。
實際上,如果缺少任何信息,Tomcat將為該插槽打印一個破折號。
自定義訪問日志
我們可以通過在application.properties中添加一些屬性來覆蓋默認(rèn)的Spring Boot配置。
首先,要更改默認(rèn)日志文件名:
server.tomcat.accesslog.suffix=.log server.tomcat.accesslog.prefix=access_log server.tomcat.accesslog.file-date-format=.yyyy-MM-dd另外,我們可以更改日志文件的位置:
server.tomcat.basedir=tomcat server.tomcat.accesslog.directory=logs最后,我們可以覆蓋日志文件中寫入日志的方式:
server.tomcat.accesslog.pattern=common服務(wù)器內(nèi)部日志
Tomcat服務(wù)器的內(nèi)部日志非常有助于解決任何服務(wù)器端問題。
要查看這些日志,我們必須在application.properties中添加以下日志記錄配置:
logging.level.org.apache.tomcat=DEBUG logging.level.org.apache.catalina=DEBUG然后我們會看到類似的東西:
2019-05-17 15:41:07.261 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-40124-Acceptor-0] latch=1 2019-05-17 15:41:07.262 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch : Counting up[http-nio-40124-Acceptor-0] latch=2 2019-05-17 15:41:07.278 DEBUG 31160 --- [io-40124-exec-1] org.apache.tomcat.util.modeler.Registry : Managed= Tomcat:type=RequestProcessor,worker="http-nio-40124",name=HttpRequest1 ... 2019-05-17 15:41:07.279 DEBUG 31160 --- [io-40124-exec-1] m.m.MbeansDescriptorsIntrospectionSource : Introspected attribute virtualHost public java.lang.String org.apache.coyote.RequestInfo.getVirtualHost() null ... 2019-05-17 15:41:07.280 DEBUG 31160 --- [io-40124-exec-1] o.a.tomcat.util.modeler.BaseModelMBean : preRegister org.apache.coyote.RequestInfo@1e6f89ad Tomcat:type=RequestProcessor,worker="http-nio-40124",name=HttpRequest1 2019-05-17 15:41:07.292 DEBUG 31160 --- [io-40124-exec-1] org.apache.tomcat.util.http.Parameters : Set query string encoding to UTF-8 2019-05-17 15:41:07.294 DEBUG 31160 --- [io-40124-exec-1] o.a.t.util.http.Rfc6265CookieProcessor : Cookies: Parsing b[]: jenkins-timestamper-offset=-19800000 2019-05-17 15:41:07.296 DEBUG 31160 --- [io-40124-exec-1] o.a.c.authenticator.AuthenticatorBase : Security checking request GET /greetings/Harry 2019-05-17 15:41:07.296 DEBUG 31160 --- [io-40124-exec-1] org.apache.catalina.realm.RealmBase : No applicable constraints defined總結(jié)
以上是生活随笔為你收集整理的Spring Boot内嵌的tomcat日志的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CMapStringToPtr::Set
- 下一篇: iangularjs 模板,Angula