在build.gradle文件中设置cargo.tomcat.valve值

时间:2020-04-28 18:27:36

标签: tomcat build.gradle cargo tomcat-valve

我要做什么: 我想将一个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>

参考: https://codehaus-cargo.github.io/apidocs/org/codehaus/cargo/container/tomcat/TomcatPropertySet.html#CUSTOM_VALVE

但是,我找不到使用gradle添加自定义阀门的方法。

1 个答案:

答案 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 &quot;%r&quot; %s %b %{X-Custom-Header}i|directory=logs|prefix=localhost_access_log.|suffix=.txt"
    ]

相关问题