#regex #log4j2
Вопрос:
Учитывая это событие журнала:
завершено: задача = { 'status' : 0
, «задача»: «{«идентификатор»: 9149263125397547267, «процесс» : «ЗНАК», «вход»: «/file/log4j-api-2.11.0.jar’ }’ }
Как я могу преобразовать выделенную часть в status: 0
регулярное выражение?
До сих пор мне удавалось получить эту часть complete: task = { 'status' : 0,
, используя следующий код:
/^(?:[^:]*[:]){2}[^:]*([,])/
Есть какие-нибудь мысли?
Комментарии:
1. Не могли бы вы также поделиться последней строкой в качестве вывода, который вы предполагаете?
2. Что за код вокруг этого?
3. Я ожидаю, что мы выйдем
status: 0
на замену$1 : S2
.
Ответ №1:
Комментарии:
1. Ха, интересно, я вижу, что шаблон работает, но замена, похоже, работает не так, как ожидалось. Все еще получаю всю строку о коробке подстановки.
2. Не могли бы вы, пожалуйста, поделиться ссылкой для того же? это поможет мне в дальнейшем
3. ммм… Поэтому я пытаюсь настроить параметр %replace в шаблоне log4j2 следующим образом:
<PatternLayout pattern="%replace{%m}{'(status)'s:s(d )}{$1:$2}%n" />
, я ожидаю получить событие журнала, подобное этому:status:0
но вместо этого я получаю:complete: task = { 'status' : 0, 'task' : '{ 'id' : 9149263125397547267, 'process' : 'A-SIGN', 'in' : '/file/log4j-api-2.11.0.jar' }' }
4. Я на самом деле протестировал вашу демо-ссылку по адресу regex101.com/r/nb53XO/1 .
5. Можете ли вы попробовать вот это: regex101.com/r/nb53XO/2