tomcat - 在 build.gradle 文件中设置 cargo.tomcat.valve 值
问题描述
我正在尝试做的事情:我想向 tomcat server.xml 添加一个 AccessLogValve,以便我可以记录自定义标头值。(参考: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 添加自定义阀门的方法。
解决方案
经过研究,我们发现tomcat的server.xml文件中的访问日志更新可以与> = 2.3的cargo插件版本一起使用(当前最新的是2020年4月30日的2.7.1)
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"
]
推荐阅读
- django - 在包含名称空间的 django url 中包含主键?
- python - Python根据另一个列表修改一个列表
- javascript - 如何使用视图框在 D3 中使 SVG 响应?
- javascript - 为什么下面的代码是按这个顺序执行的?
- mysql - 有点复杂的 MySql 查询
- javascript - Nuxt 构建失败,在 ./node_modules/bootstrap-vue/:varisouspath 中找不到 core-js 依赖项
- python - 在 Google Cloud Storage Bucket 中使用 PIL 更改图像大小(来自 GCloud 中的 VM)
- c# - CanDrag=True 时无法选择 ListBox 中的项目
- r - 根据创建日期过滤 twitter 数据
- bash - 适用于 Mac 的 Bash 'cut' 命令