Class MessageResolver
java.lang.Object
org.apache.logging.log4j.layout.template.json.resolver.MessageResolver
- All Implemented Interfaces:
EventResolver,TemplateResolver<LogEvent>
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.-
Method Summary
Modifier and TypeMethodDescriptionvoidresolve(LogEvent logEvent, JsonWriter jsonWriter) Resolves the givenvalueusing the providedJsonWriter.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.logging.log4j.layout.template.json.resolver.TemplateResolver
isFlattening, isResolvable, isResolvable, resolve
-
Method Details
-
resolve
Description copied from interface:TemplateResolverResolves the givenvalueusing the providedJsonWriter.- Specified by:
resolvein interfaceTemplateResolver<LogEvent>
-