Использование нескольких фильтров в Wildfly Logger - PullRequest
0 голосов
/ 20 мая 2019

Я использую 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"
}

Но у этого файла журнала есть две проблемы:

  1. поле msg содержит важную информацию (например, пароль), и я хочу отфильтровать ее.
  2. некоторая информация избыточна, и я не хочу ее хранить. (например, узлы содержат «требование получения» или «вызов getDataMethod»)

для решения проблемы # 1, я пишу это filter-spec и удаляю все ведра с помощью regex:

<logger category="org.somePackags.MyClass" use-parent-handlers="false">
    <level name="INFO" />
    <filter-spec value="all(match(&quot;\\[(.*)\\]&quot;),substituteAll(&quot;\\[(.*)\\]&quot;, &quot; &quot;))" />
    <handlers>
        <handler name="JsonLog" />
    </handlers>
</logger>

Теперь я хочу добавить правила к filter-spec, чтобы исключить узлы, которые соответствуют в задаче №2, я читаю FilterExpressions , но я не знаю, как написать Multiple filter-spec. есть идеи?

1 Ответ

1 голос
/ 21 мая 2019

Фильтр all будет обрабатывать каждый фильтр в цепочке, и если какой-либо из фильтров в цепочке сочтет сообщение не подлежащим блокировке, то сообщение не регистрируется. all с фильтром substituteAll, похоже, тот, который вы должны использовать. Вы бы просто добавили больше substituteAll фильтров в цепочку.

То, что вам нужно выяснить, это шаблоны для замены данных. Вы можете удалить match, так как похоже, что он все равно совпадает.

...