public abstract class AbstractStringLayout extends AbstractLayout<java.lang.String> implements StringLayout
Since 2.4.1, this class has custom logic to convert ISO-8859-1 or US-ASCII Strings to byte[] arrays to improve performance: all characters are simply cast to bytes.
Modifier and Type | Class and Description |
---|---|
static class |
AbstractStringLayout.Builder<B extends AbstractStringLayout.Builder<B>> |
static interface |
AbstractStringLayout.Serializer |
static interface |
AbstractStringLayout.Serializer2
Variation of
AbstractStringLayout.Serializer that avoids allocating temporary objects. |
Modifier and Type | Field and Description |
---|---|
private java.nio.charset.Charset |
charset
The charset for the formatted message.
|
private java.lang.String |
charsetName |
protected static int |
DEFAULT_STRING_BUILDER_SIZE
Default length for new StringBuilder instances: 1024 .
|
private AbstractStringLayout.Serializer |
footerSerializer |
private AbstractStringLayout.Serializer |
headerSerializer |
protected static int |
MAX_STRING_BUILDER_SIZE |
private Encoder<java.lang.StringBuilder> |
textEncoder |
private static java.lang.ThreadLocal<java.lang.StringBuilder> |
threadLocal |
private boolean |
useCustomEncoding |
configuration, eventCount, footer, header, LOGGER
ELEMENT_TYPE
Modifier | Constructor and Description |
---|---|
protected |
AbstractStringLayout(java.nio.charset.Charset charset) |
protected |
AbstractStringLayout(java.nio.charset.Charset aCharset,
byte[] header,
byte[] footer)
Builds a new layout.
|
protected |
AbstractStringLayout(Configuration config,
java.nio.charset.Charset aCharset,
AbstractStringLayout.Serializer headerSerializer,
AbstractStringLayout.Serializer footerSerializer)
Builds a new layout.
|
Modifier and Type | Method and Description |
---|---|
protected byte[] |
getBytes(java.lang.String s) |
java.nio.charset.Charset |
getCharset()
Gets the Charset this layout uses to encode Strings into bytes.
|
java.lang.String |
getContentType()
Returns the content type output by this layout.
|
byte[] |
getFooter()
Returns the footer, if one is available.
|
AbstractStringLayout.Serializer |
getFooterSerializer() |
byte[] |
getHeader()
Returns the header, if one is available.
|
AbstractStringLayout.Serializer |
getHeaderSerializer() |
private DefaultLogEventFactory |
getLogEventFactory() |
protected static java.lang.StringBuilder |
getStringBuilder()
Returns a
StringBuilder that this Layout implementation can use to write the formatted log event to. |
protected Encoder<java.lang.StringBuilder> |
getStringBuilderEncoder()
Returns a
Encoder<StringBuilder> that this Layout implementation can use for encoding log events. |
private static boolean |
isPreJava8() |
protected byte[] |
serializeToBytes(AbstractStringLayout.Serializer serializer,
byte[] defaultValue) |
protected java.lang.String |
serializeToString(AbstractStringLayout.Serializer serializer) |
private static int |
size(java.lang.String property,
int defaultValue) |
byte[] |
toByteArray(LogEvent event)
Formats the Log Event as a byte array.
|
protected static void |
trimToMaxSize(java.lang.StringBuilder stringBuilder) |
encode, getConfiguration, getContentFormat, markEvent, writeTo
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getContentFormat, toSerializable
protected static final int DEFAULT_STRING_BUILDER_SIZE
protected static final int MAX_STRING_BUILDER_SIZE
private static final java.lang.ThreadLocal<java.lang.StringBuilder> threadLocal
private Encoder<java.lang.StringBuilder> textEncoder
private transient java.nio.charset.Charset charset
private final java.lang.String charsetName
private final AbstractStringLayout.Serializer footerSerializer
private final AbstractStringLayout.Serializer headerSerializer
private final boolean useCustomEncoding
protected AbstractStringLayout(java.nio.charset.Charset charset)
protected AbstractStringLayout(java.nio.charset.Charset aCharset, byte[] header, byte[] footer)
aCharset
- the charset used to encode the header bytes, footer bytes and anything else that needs to be
converted from strings to bytes.header
- the header bytesfooter
- the footer bytesprotected AbstractStringLayout(Configuration config, java.nio.charset.Charset aCharset, AbstractStringLayout.Serializer headerSerializer, AbstractStringLayout.Serializer footerSerializer)
config
- the configurationaCharset
- the charset used to encode the header bytes, footer bytes and anything else that needs to be
converted from strings to bytes.headerSerializer
- the header bytes serializerfooterSerializer
- the footer bytes serializerprotected static java.lang.StringBuilder getStringBuilder()
StringBuilder
that this Layout implementation can use to write the formatted log event to.StringBuilder
private static boolean isPreJava8()
private static int size(java.lang.String property, int defaultValue)
protected static void trimToMaxSize(java.lang.StringBuilder stringBuilder)
protected byte[] getBytes(java.lang.String s)
public java.nio.charset.Charset getCharset()
StringLayout
getCharset
in interface StringLayout
public java.lang.String getContentType()
Layout
getContentType
in interface Layout<java.lang.String>
public byte[] getFooter()
getFooter
in interface Layout<java.lang.String>
getFooter
in class AbstractLayout<java.lang.String>
public AbstractStringLayout.Serializer getFooterSerializer()
public byte[] getHeader()
getHeader
in interface Layout<java.lang.String>
getHeader
in class AbstractLayout<java.lang.String>
public AbstractStringLayout.Serializer getHeaderSerializer()
private DefaultLogEventFactory getLogEventFactory()
protected Encoder<java.lang.StringBuilder> getStringBuilderEncoder()
Encoder<StringBuilder>
that this Layout implementation can use for encoding log events.Encoder<StringBuilder>
protected byte[] serializeToBytes(AbstractStringLayout.Serializer serializer, byte[] defaultValue)
protected java.lang.String serializeToString(AbstractStringLayout.Serializer serializer)
public byte[] toByteArray(LogEvent event)
toByteArray
in interface Layout<java.lang.String>
event
- The Log Event.