Доброго времени суток!
Есть лог,такого вот формата
[09.08.16 16:52:55] LOGLEVEl MESSAGE
Нужно распарсить его в одной строке на составные части(для grok в logstash), т.е. дата, логлевел и сообщение.
Написаны след. регэкспы
DATE (\d{2}\.\d{2}\.\d{2})
TIME (\d{2}:\d{2}:\d{2})
DATETIME %{DATE} %{TIME}
LOGLEVEL (TRACE|DEBUG|NOTICE|INFO|WARN?(?:ING)?|ERR?(?:OR)?|CRIT?(?:ICAL)?|FATAL|SEVERE|EMERG)
LOGMESSAGE ((TRACE|DEBUG|NOTICE|INFO|WARN?(?:ING)?|ERR?(?:OR)?|CRIT?(?:ICAL)?|FATAL|SEVERE|EMERG))(.*?)(\n|$)
Так вот LOGMESSAGE возвращает строку начиная от LOGLEVEL и до конца строки, по этой причине
не получается использовать в одном выражении LOGLEVEL и LOGMESSAGE.
Может кто подсказать, возможно ли вытащить из лога только MESSAGE, начиная от LOGLEVEL и до конца строки, не включая сам LOGLEVEL, т.е
из строчки
abcdef LOGLEVEL dbhsbf[2]]3smna_/d)
,надо получить только
dbhsbf[2]]3smna_/d
.
Получить с помощью регэскпа хочу получить как-то так:
Есть лог, такого вот формата [09.08.16 16:52:55] LOGLEVEl MESSAGE Нужно распарсить его в одной строке на составные части, т.е. дата, логлевел и сообщение
А теперь давай ты прочитаешь описание разметки LORCODE (ссылка прямо под полем ввода сообщения) и перепишешь свою нечитабельную словесную кашу с помощью переводов строк и тегов [code]..[/code], хорошо?
Ну необходима возможность сортировать и строить дашборды по дате, логлевлу, и желательно получать только «чистое» сообщение лога. Если подскажете, как сделать без регулярок, буду благодарен
DATE (\d{2}\.\d{2}\.\d{2})
TIME (\d{2}:\d{2}:\d{2})
LOGLEVEL (TRACE|DEBUG|NOTICE|INFO|WARN?(?:ING)?|ERR?(?:OR)?|CRIT?(?:ICAL)?|FATAL|SEVERE|EMERG)
LOGMESSAGE ((TRACE|DEBUG|NOTICE|INFO|WARN?(?:ING)?|ERR?(?:OR)?|CRIT?(?:ICAL)?|FATAL|SEVERE|EMERG))(.*?)(\n|$) [/]code
Ок. На чем долбил на поля? Я не знаючто за логсташ, там есть регексп? Сам регексп я тебе напишу быстро, но тут важно для какой шляпы его писать, может быть разница.
Долбил grok'ом (анализатор текста) который встроен в logstash, поддерживает регэкспы. Спасибо за регулярку, примерно понял, что надо поправить, буду пробовать.