Logstash - log4net.log中的分隔事件,可能包含多行

时间:2015-07-28 13:00:47

标签: logstash logstash-file

enter image description here

这是从log4net

生成的典型日志文件

因此,logstash file input plugin读取此日志文件。

默认情况下,配置中的delimiter\n,这意味着每一行都是一个事件。

但是在上面的日志文件中,您可以看到一个事件可能有多行。 (如ERROR或FAULT或其他)

如何配置Logstash以正确分隔事件?

我想我可以配置多个分隔符,例如\nINFO \nDEBUG \nERROR \nFAULT。但document表示只能有一个分隔符。

2 个答案:

答案 0 :(得分:4)

以下配置应正确划分您的活动。

输入配置:

input { 
    file {
        path => "/absolute/path/here.log"
        type => "log4net"
        codec => multiline {
                    pattern => "^(DEBUG|WARN|ERROR|INFO|FATAL)"
                    negate => true
                    what => previous
                }
      }
}

答案 1 :(得分:3)

你所拥有的是多线活动。有一个codec可以帮助您处理。

基本思想是定义一个模式,用于标识日志条目的开头(在您的情况下,是日志级别),然后将所有其他行滚动到上一行。