Documentation
¶
Overview ¶
The multiline codec will collapse multiline messages and merge them into a single event.
The original goal of this codec was to allow joining of multiline messages from files into a single event. For example, joining Java exception and stacktrace messages into a single event.
The config looks like this: ```
input {
stdin {
codec => multiline {
pattern => "pattern, a regexp"
negate => true or false
what => "previous" or "next"
}
}
}
``` The pattern should match what you believe to be an indicator that the field is part of a multi-line event.
The what must be previous or next and indicates the relation to the multi-line event.
The negate can be true or false (defaults to false). If true, a message not matching the pattern will constitute a match of the multiline filter and the what will be applied. (vice-versa is also true)
For example, Java stack traces are multiline and usually have the message starting at the far-left, with each subsequent line indented. Do this:
```
input {
stdin {
codec => multiline {
pattern => "^\\s"
what => "previous"
}
}
}
``` This says that any line starting with whitespace belongs to the previous line.
Another example is to merge lines not starting with a date up to the previous line..
```
input {
file {
path => "/var/log/someapp.log"
codec => multiline {
# Grok pattern names are valid! :)
pattern => "^%{TIMESTAMP_ISO8601} "
negate => true
what => "previous"
}
}
}
``` This says that any line not starting with a timestamp should be merged with the previous line.
One more common example is C line continuations (backslash). Here’s how to do that:
```
filter {
multiline {
pattern => "\\$"
what => "next"
}
}
``` This says that any line ending with a backslash should be combined with the following line.
Code generated by "bitfanDoc -codec multiline"; DO NOT EDIT
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewDecoder ¶
Types ¶
This section is empty.