logging - 在 Wildfly Logger 中使用多个过滤器规格
问题描述
我正在使用Wildfly 10,我想将服务器日志存储在json
带有一些过滤器的文件中,这是我的日志:
{
"msg": "\n[\"getDataMethod\" req. received]\n[password: ***]\n[prop2: value2]]\n",
"field1": "value1"
}{
"msg": "\n[call \"getDataMethod\"]\n[password: ***]\n[prop2: value2]]\n",
"field2": "value2"
}{
"msg": "full-XML SOAP request",
"field3": "value3"
}{
"msg": "\n[\"getDataMethod\" finished...]\n[password: ***]\n[prop2: value2]]\n",
"field4": "value4"
}
但是这个日志文件有两个问题:
- 该
msg
字段包含关键信息(如密码),我想过滤它们。 - 有些信息是多余的,我不想存储它们。(例如,节点包含“req. received”或“call getDataMethod”)
为了解决问题#1,我写了这个filter-spec
并删除了所有存储桶regex
:
<logger category="org.somePackags.MyClass" use-parent-handlers="false">
<level name="INFO" />
<filter-spec value="all(match("\\[(.*)\\]"),substituteAll("\\[(.*)\\]", " "))" />
<handlers>
<handler name="JsonLog" />
</handlers>
</logger>
现在我想添加规则以filter-spec
排除与问题 #2 匹配的节点,我阅读了 FilterExpressions,但我不知道如何编写 Multiple filter-spec
。任何想法?
解决方案
过滤器将处理链中的all
每个过滤器,如果链中的任何过滤器认为消息不可记录,则不记录该消息。all
带有substituteAll
过滤器的似乎确实是您应该使用的过滤器。您只需substituteAll
在链中添加更多过滤器。
您需要弄清楚的是替换数据的模式。您也可以删除match
它,看起来它只是匹配所有内容。
推荐阅读
- wpf - 为什么 TextBlock 中的文本不显示?
- c++ - N皇后解决方案不正确,我不知道为什么
- python - 为什么 np.float32 的执行速度可能比 np.float64 慢?
- python - 将数组切片传递给 Python 中的函数是 O(1) 还是 O(N) 操作?
- javascript - 如何使用firebase + react检查Session是否还活着?
- google-sheets - 如何根据多列值获取不同行组合的计数?
- mysql - SQL中按id删除多行
- swift - 使用 swit for 循环解决 CodingBat string_bits 问题
- ruby-on-rails - 如何在rails中使用webpacker安装tailwindcss
- twilio - 当设备在不同的网络上时如何使 webrtc 视频通话正常工作