@Plugin(name="LogstashJsonLayout",
category="Core",
elementType="layout",
printObject=true)
public final class LogstashJsonLayout
extends org.apache.logging.log4j.core.layout.AbstractStringLayout
If you configure complete="true", the appender outputs a well-formed JSON document. By default, with
complete="false", you should include the output as an external file in a separate file to form a
well-formed JSON document.
If complete="false", the appender does not write the JSON open array character "[" at the start
of the document, "]" and the end, nor comma "," between records.
Appenders using this layout should have their charset set to UTF-8 or UTF-16, otherwise
events containing non ASCII characters could result in corrupted log files.
By default, the JSON layout is not compact (a.k.a. "pretty") with compact="false", which means the
appender uses end-of-line characters and indents lines to format the text. If compact="true", then no
end-of-line or indentation is used. Message content may contain, of course, escaped end-of-lines.
This property allows addition of custom fields into generated JSON.
<JsonLayout><KeyValuePair key="foo" value="bar"/></JsonLayout> inserts "foo":"bar" directly
into JSON output. Supports Lookup expressions.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
org.apache.logging.log4j.core.layout.AbstractJacksonLayout.ResolvableKeyValuePair |
static class |
LogstashJsonLayout.Builder<B extends LogstashJsonLayout.Builder<B>> |
static class |
LogstashJsonLayout.LogEventWithAdditionalFields |
| Modifier and Type | Field and Description |
|---|---|
protected org.apache.logging.log4j.core.layout.AbstractJacksonLayout.ResolvableKeyValuePair[] |
additionalFields |
protected boolean |
compact |
protected static java.lang.String |
COMPACT_EOL |
protected boolean |
complete |
protected static java.lang.String |
DEFAULT_EOL |
protected java.lang.String |
eol |
protected boolean |
includeNullDelimiter |
protected com.fasterxml.jackson.databind.ObjectWriter |
objectWriter |
DEFAULT_STRING_BUILDER_SIZE, MAX_STRING_BUILDER_SIZE| Modifier and Type | Method and Description |
|---|---|
static LogstashJsonLayout |
createDefaultLayout()
Creates a JSON Layout using the default settings.
|
java.util.Map<java.lang.String,java.lang.String> |
getContentFormat() |
java.lang.String |
getContentType() |
byte[] |
getFooter()
Returns appropriate JSON footer.
|
byte[] |
getHeader()
Returns appropriate JSON header.
|
static <B extends LogstashJsonLayout.Builder<B>> |
newBuilder() |
java.lang.String |
toSerializable(org.apache.logging.log4j.core.LogEvent arg0) |
void |
toSerializable(org.apache.logging.log4j.core.LogEvent event,
java.io.Writer writer) |
protected static boolean |
valueNeedsLookup(java.lang.String arg0) |
java.lang.Object |
wrapLogEvent(org.apache.logging.log4j.core.LogEvent event) |
getBytes, getCharset, getFooterSerializer, getHeaderSerializer, getStringBuilder, getStringBuilderEncoder, serializeToBytes, serializeToString, toByteArray, trimToMaxSizeencode, getConfiguration, markEventprotected static final java.lang.String DEFAULT_EOL
protected static final java.lang.String COMPACT_EOL
protected final java.lang.String eol
protected final com.fasterxml.jackson.databind.ObjectWriter objectWriter
protected final boolean compact
protected final boolean complete
protected final boolean includeNullDelimiter
protected final org.apache.logging.log4j.core.layout.AbstractJacksonLayout.ResolvableKeyValuePair[] additionalFields
public byte[] getHeader()
getHeader in interface org.apache.logging.log4j.core.Layout<java.lang.String>getHeader in class org.apache.logging.log4j.core.layout.AbstractStringLayoutpublic byte[] getFooter()
getFooter in interface org.apache.logging.log4j.core.Layout<java.lang.String>getFooter in class org.apache.logging.log4j.core.layout.AbstractStringLayoutpublic java.util.Map<java.lang.String,java.lang.String> getContentFormat()
getContentFormat in interface org.apache.logging.log4j.core.Layout<java.lang.String>getContentFormat in class org.apache.logging.log4j.core.layout.AbstractLayout<java.lang.String>public java.lang.String getContentType()
getContentType in interface org.apache.logging.log4j.core.Layout<java.lang.String>getContentType in class org.apache.logging.log4j.core.layout.AbstractStringLayout@PluginBuilderFactory public static <B extends LogstashJsonLayout.Builder<B>> B newBuilder()
public static LogstashJsonLayout createDefaultLayout()
public java.lang.Object wrapLogEvent(org.apache.logging.log4j.core.LogEvent event)
public void toSerializable(org.apache.logging.log4j.core.LogEvent event,
java.io.Writer writer)
throws java.io.IOException
java.io.IOExceptionprotected static boolean valueNeedsLookup(java.lang.String arg0)
public java.lang.String toSerializable(org.apache.logging.log4j.core.LogEvent arg0)