Modifier and Type | Field and Description |
---|---|
private int |
byteBufferSize |
private int |
charBufferSize |
private java.nio.charset.Charset |
charset |
private static int |
DEFAULT_BYTE_BUFFER_SIZE |
private java.lang.ThreadLocal<java.lang.Object[]> |
threadLocal
This ThreadLocal uses raw and inconvenient Object[] to store three heterogeneous objects (CharEncoder, CharBuffer
and ByteBuffer) instead of a custom class, because it needs to contain JDK classes, no custom (Log4j) classes.
|
Constructor and Description |
---|
StringBuilderEncoder(java.nio.charset.Charset charset) |
StringBuilderEncoder(java.nio.charset.Charset charset,
int charBufferSize,
int byteBufferSize) |
Modifier and Type | Method and Description |
---|---|
void |
encode(java.lang.StringBuilder source,
ByteBufferDestination destination)
Encodes the specified source object to some binary representation and writes the result to the specified
destination.
|
private java.lang.Object[] |
getThreadLocalState() |
private void |
logEncodeTextException(java.lang.Exception ex,
java.lang.StringBuilder text,
ByteBufferDestination destination) |
private static final int DEFAULT_BYTE_BUFFER_SIZE
private final java.lang.ThreadLocal<java.lang.Object[]> threadLocal
ThreadLocal.ThreadLocalMap
is polluted less, ThreadLocal.ThreadLocalMap#get()
is called only once on each call to encode(java.lang.StringBuilder, org.apache.logging.log4j.core.layout.ByteBufferDestination)
instead of three times.private final java.nio.charset.Charset charset
private final int charBufferSize
private final int byteBufferSize
public StringBuilderEncoder(java.nio.charset.Charset charset)
public StringBuilderEncoder(java.nio.charset.Charset charset, int charBufferSize, int byteBufferSize)
public void encode(java.lang.StringBuilder source, ByteBufferDestination destination)
Encoder
private java.lang.Object[] getThreadLocalState()
private void logEncodeTextException(java.lang.Exception ex, java.lang.StringBuilder text, ByteBufferDestination destination)