Регулярное выражение в Splunk - PullRequest
       13

Регулярное выражение в Splunk

0 голосов
/ 22 сентября 2011

Мне нужно регулярное выражение, которое предоставит мне сообщение об ошибке в следующем формате:

[2011-09-21 17:53:24:446 GMT][75DABF9052639D387C4E2F8EF7DC516C.http-8080-18]  [com.abc.resolver.rest.CommComponent] ERROR Cannot get payload while processing error message
[2011-09-21 17:53:24:446 GMT][75DABF9052639D387C4E2F8EF7DC516C.http-8080-18][com.pqr.chktest.Client] ERROR Error connecting to http://beta.com/api/1 with response code: 401
[2011-09-21 17:53:24:446 GMT][75DABF9052639D387C4E2F8EF7DC516C.http-8080-18][com.pqr.chktest.Client] ERROR upload error: java.lang.Exception: Error connecting to beta server at http address http://beta.com

Не удается получить полезную нагрузку при обработке Ошибка подключения к http://beta.com/api/1 с ошибка загрузки: ошибка подключения к

Как правило, я хочу получить только первые 5 слов после слова "ОШИБКА" (заглавной буквой)

«ОШИБКА (? [^ [] +)» Возвращает мне все слова. Но я не могу заставить его работать только для первых 5 слов.

Также, если первые 5 слов после ОШИБКИ содержат java.lang.Exception, я не хочу включать его в свой результат, вместо этого мне нужны следующие соответствующие слова.

Любая помощь очень ценится.

Спасибо!

1 Ответ

0 голосов
/ 22 сентября 2011

Попробуйте регулярное выражение

"ERROR(\s+[^\s]+){5}"

, чтобы получить пять слов после "ОШИБКА".Для второй части (исключая java.lang.Exception) я бы не делал это в одном регулярном выражении, но проверил бы первое совпадение и, если он включает эти слова, начал бы другой поиск в строке, теперь такой как

"java.lang.Exception:(\s+[^\s]+){5}"
...