Message
resolver.
Configuration
config = [ stringified ] , [ fallbackKey ]
stringified = "stringified" -> boolean
fallbackKey = "fallbackKey" -> string
Examples
Resolve the message into a string:
{
"$resolver": "message",
"stringified": true
}
Resolve the message such that if it is a
ObjectMessage
or
MultiformatMessage
with JSON support, its emitted JSON type (string, list,
object, etc.) will be retained:
{
"$resolver": "message"
}
Given the above configuration, a
SimpleMessage
will generate a
"sample log message", whereas a
MapMessage
will generate a
{"action": "login", "sessionId": "87asd97a"}. Certain indexed log
storage systems (e.g.,
Elasticsearch) will not
allow both values to coexist due to type mismatch: one is a
string
while the other is an
object. Here one can use a
fallbackKey to work around the problem:
{
"$resolver": "message",
"fallbackKey": "formattedMessage"
}
Using this configuration, a
SimpleMessage
will generate a
{"formattedMessage": "sample log message"} and a
MapMessage
will generate a
{"action": "login", "sessionId": "87asd97a"}. Note
that both emitted JSONs are of type
object and have no
type-conflicting fields.