Class AbstractLayout<T extends Serializable>
- java.lang.Object
-
- org.apache.logging.log4j.core.layout.AbstractLayout<T>
-
- Type Parameters:
T
- The Class that the Layout will format the LogEvent into.
- Direct Known Subclasses:
AbstractStringLayout
,MessageLayout
,SerializedLayout
public abstract class AbstractLayout<T extends Serializable> extends Object implements Layout<T>
Abstract base class for Layouts.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractLayout.Builder<B extends AbstractLayout.Builder<B>>
Subclasses can extend this abstract Builder.
-
Field Summary
Fields Modifier and Type Field Description protected Configuration
configuration
The current Configuration.protected long
eventCount
The number of events successfully processed by this layout.protected byte[]
footer
The footer to add when the stream is closed.protected byte[]
header
The header to include when the stream is opened.protected static Logger
LOGGER
Allow subclasses access to the status logger without creating another instance.-
Fields inherited from interface org.apache.logging.log4j.core.Layout
ELEMENT_TYPE
-
-
Constructor Summary
Constructors Constructor Description AbstractLayout(byte[] header, byte[] footer)
Deprecated.AbstractLayout(Configuration configuration, byte[] header, byte[] footer)
Constructs a layout with an optional header and footer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
encode(LogEvent event, ByteBufferDestination destination)
Encodes the specified source LogEvent to some binary representation and writes the result to the specified destination.Configuration
getConfiguration()
Map<String,String>
getContentFormat()
Returns a description of the content format.byte[]
getFooter()
Returns the footer, if one is available.byte[]
getHeader()
Returns the header, if one is available.protected void
markEvent()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.logging.log4j.core.Layout
getContentType, toByteArray, toSerializable
-
-
-
-
Field Detail
-
LOGGER
protected static final Logger LOGGER
Allow subclasses access to the status logger without creating another instance.
-
configuration
protected final Configuration configuration
The current Configuration.
-
eventCount
protected long eventCount
The number of events successfully processed by this layout.
-
footer
protected final byte[] footer
The footer to add when the stream is closed. May be null.
-
header
protected final byte[] header
The header to include when the stream is opened. May be null.
-
-
Constructor Detail
-
AbstractLayout
@Deprecated public AbstractLayout(byte[] header, byte[] footer)
Deprecated.Constructs a layout with an optional header and footer.- Parameters:
header
- The header to include when the stream is opened. May be null.footer
- The footer to add when the stream is closed. May be null.
-
AbstractLayout
public AbstractLayout(Configuration configuration, byte[] header, byte[] footer)
Constructs a layout with an optional header and footer.- Parameters:
configuration
- The configurationheader
- The header to include when the stream is opened. May be null.footer
- The footer to add when the stream is closed. May be null.
-
-
Method Detail
-
getConfiguration
public Configuration getConfiguration()
-
getContentFormat
public Map<String,String> getContentFormat()
Description copied from interface:Layout
Returns a description of the content format.- Specified by:
getContentFormat
in interfaceLayout<T extends Serializable>
- Returns:
- a Map of key/value pairs describing the Layout-specific content format, or an empty Map if no content format descriptors are specified.
-
getFooter
public byte[] getFooter()
Returns the footer, if one is available.- Specified by:
getFooter
in interfaceLayout<T extends Serializable>
- Returns:
- A byte array containing the footer.
-
getHeader
public byte[] getHeader()
Returns the header, if one is available.- Specified by:
getHeader
in interfaceLayout<T extends Serializable>
- Returns:
- A byte array containing the header.
-
markEvent
protected void markEvent()
-
encode
public void encode(LogEvent event, ByteBufferDestination destination)
Encodes the specified source LogEvent to some binary representation and writes the result to the specified destination.The default implementation of this method delegates to the
Layout.toByteArray(LogEvent)
method which allocates temporary objects.Subclasses can override this method to provide a garbage-free implementation. For text-based layouts,
AbstractStringLayout
provides various convenience methods to help with this:@Plugin(name = "MyLayout", category = Node.CATEGORY, elementType = Layout.ELEMENT_TYPE, printObject = true) public final class MyLayout extends AbstractStringLayout {
- Specified by:
encode
in interfaceEncoder<T extends Serializable>
- Parameters:
event
- the LogEvent to encode.destination
- holds the ByteBuffer to write into.- See Also:
AbstractStringLayout.getStringBuilder()
,AbstractStringLayout.getStringBuilderEncoder()
-
-