Tomcat access log配置(二)

前次討論了spring boot 中添加Tomcat access log 是輕鬆愉快,配置文件中添加server.tomcat.accesslog便可,那麼若是是外置的Tomcat容器又該如何配置呢?html

配置

server.xml是Tomcat中最重要的配置文件,server.xml的每個元素都對應了Tomcat中的一個組件;經過對xml文件中元素的配置,能夠實現對Tomcat中各個組件的控制。access log也是在server.xml中配置的。spring

位於:Server.Service.Engine.Host.Valve結點。apache

節點的配置說明 緩存

  • className 是訪問日誌的實現類,能夠爲org.apache.catalina.valves.AccessLogValve,也能夠是org.apache.catalina.valves.ExtendedAccessLogValve
  • directory 是訪問日誌的轉出目錄
  • prefix 是日誌文件的文件名前綴
  • suffix是日誌文件的文件名後綴
  • fileDateFormat是設置滾動生成文件的格式,如yyyy-MM-dd是天天滾動生成新日誌文件,yyyy-MM-dd.HH是每小時滾動生成新的日誌文件。
  • rotatable是設置是否滾動生成日誌文件,默認置是true
  • pattern是設置日誌的格式
  • encoding是設置日誌文件的字符編碼
  • conditionIf是設置是否生成訪問日誌,若其值爲xxx,當request.getAttribute("xxx")不爲空才生成訪問日誌
  • conditionUnless是設置否生成訪問日誌,若其值爲xxx,當request.getAttribute("xxx")空才生成訪問日誌
  • buffered是設置是否緩存日誌,默認值爲true,當設置爲false時,每一個request都會馬上產生訪問日誌

pattern的配置與Valve的className值有關,經常使用的取值爲:org.apache.catalina.valves.AccessLogValve,其配置參考:spring boot access log配置;其它有org.apache.catalina.valves.ExtendedAccessLogValve,其配置參考tomcat

實例

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/home/admin/appname/logs" encoding="utf-8" prefix="access_log." fileDateFormat="yyyyMMdd" suffix=".log" pattern="%t [%I] %{X-Forwarded-For}i %a %r %s %D" />

而後會在directory指定目錄下生成形如access_log.20171226.log的訪問日誌,並天天滾動日誌。app

參考

詳解 Tomcat 配置文件server.xml http://www.importnew.com/26156.html
定製tomcat訪問日誌 http://blog.csdn.net/musa875643dn/article/details/51636417less

相關文章
相關標籤/搜索