这是从 log4net 生成的典型日志文件
因此,该日志文件由logstash 文件输入插件读取。
默认情况下,delimiter
in 配置是\n
,这意味着每一行都是一个事件。
但是在上面的日志文件中,您可以看到一个事件可能有多行。(如 ERROR 或 FAULT 或其他)
如何配置 Logstash 以正确分隔事件?
我想我可以配置多个分隔符,例如\nINFO
\nDEBUG
\nERROR
\nFAULT
. 但是文件说只能有一个分隔符。
这是从 log4net 生成的典型日志文件
因此,该日志文件由logstash 文件输入插件读取。
默认情况下,delimiter
in 配置是\n
,这意味着每一行都是一个事件。
但是在上面的日志文件中,您可以看到一个事件可能有多行。(如 ERROR 或 FAULT 或其他)
如何配置 Logstash 以正确分隔事件?
我想我可以配置多个分隔符,例如\nINFO
\nDEBUG
\nERROR
\nFAULT
. 但是文件说只能有一个分隔符。
以下配置应正确界定您的事件。
输入配置:
input {
file {
path => "/absolute/path/here.log"
type => "log4net"
codec => multiline {
pattern => "^(DEBUG|WARN|ERROR|INFO|FATAL)"
negate => true
what => previous
}
}
}
你有一个多线事件。有一个编解码器可以帮助您处理它。
基本思想是定义一个模式来标识日志条目的开头(在您的情况下,日志级别),然后将所有其他行滚动到前一个。