我要做什么: 我想将一个AccessLogValve添加到tomcat server.xml中,以便可以记录自定义标头值。 (参考:https://jfrog.com/knowledge-base/how-can-i-log-custom-request-headers-using-the-tomcat-access-log-valve/)
我遇到的问题:
每次运行gradle都会创建新的server.xml。我想添加一个cargo.tomcat.valve
容器属性,但是找不到有效的格式。
我要添加的阀门是Access Log Valve
https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html#Access_Log_Valve
一个失败的示例是containerProperties ['cargo.tomcat.valve'] = 'className=org.apache.catalina.valves.AccessLogValve| pattern=combined'
我尝试了上述各种版本,但似乎都无法正常工作。
我可以看到maven示例是
<cargo.tomcat.valve.stuckthread>
className=org.apache.catalina.valves.StuckThreadDetectionValve|
threshold=60
</cargo.tomcat.valve.stuckthread>
但是,我找不到使用gradle添加自定义阀门的方法。
答案 0 :(得分:0)
研究结束后,我们发现tomcat的server.xml文件中的访问日志更新可与> = 2.3的货物插件一起使用(截至2020年4月30日,当前最新版本为2.7.1)< / p>
在build.gradle中更新阀门的示例应如下:
containerProperties = [
'cargo.tomcat.ajp.port' : 8050,
'cargo.tomcat.valve' : "className=org.apache.catalina.valves.AccessLogValve|pattern=%h %l %u %t "%r" %s %b %{X-Custom-Header}i|directory=logs|prefix=localhost_access_log.|suffix=.txt"
]