Regex greediness在logstash中刷新rails日志,捕获所有请求

Regex greediness在logstash中刷新rails日志,捕获所有请求,regex,logstash,Regex,Logstash,我在logstash多行过滤器中有这样一种模式: filter { multiline { pattern => "^Started.*ActiveRecord: ([0-9]+\.[0-9]{1})ms\).+?" negate => true what => "previous" stream_identity => "%{host}.%{path}.%{type}" } } 但这里的问题是,这个表达式捕获所有rails请求,

我在logstash多行过滤器中有这样一种模式:

filter {
  multiline {
    pattern => "^Started.*ActiveRecord: ([0-9]+\.[0-9]{1})ms\).+?"
    negate => true
    what => "previous"
    stream_identity => "%{host}.%{path}.%{type}"
  }
}
但这里的问题是,这个表达式捕获所有rails请求,直到日志文件结束。如何让此表达式在第一次匹配时停止?

请尝试以下操作:

^Started.*?ActiveRecord: ([0-9]+\.[0-9]{1})ms\).*?$
试试这个

break\u on\u match=>true


来源:

我正试图在logstash中分离日志。但是日志没有换行符。许多日志被连接为一个日志。因此,使用行终止符对我不起作用。同样在graylog中,换行符也不受尊重。你能提供一个日志样本让我测试一下吗?我已经创建了一个Rubular:。跳过了很多行,但前提是一样的。