В настоящее время я настраиваю стек efk для анализа моих журналов java (log4j).Я могу проанализировать все журналы, кроме последней строки журнала.так, например.
2019-05-17 07:19:35,708 WARN log-line-1
2019-05-17 07:19:35,708 WARN log-line-2
, поэтому log-line-1
анализируется, но не log-line-2
.В противном случае я могу проанализировать все.
Я проверил свое регулярное выражение (https://rubular.com/), и он отлично работает.
Ниже приведена конфигурация для fluentd:
format multiline
format_firstline /\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2},\d{3}/
format1 /(?<logtime>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2},\d{3})[\s](?<LEVEL>[A-Z]+)(?<message>(?=([\w\W\s]*?\d{4}-\d{2}-\d{2}[\s]*\d{2}:\d{2}:\d{2}\,\d{3}))([\w\W\s]*?)(?=(\d{4}-\d{2}-\d{2}[\s]*\d{2}:\d{2}:\d{2}\,\d{3}))|((.|\s)*))/
@type tail
time_key logtime