@Plugin(name="Rfc5424Layout", category="Core", elementType="layout", printObject=true) public final class Rfc5424Layout extends AbstractStringLayout
Modifier and Type | Class and Description |
---|---|
private class |
Rfc5424Layout.ExcludeChecker
Excludes the listed keys.
|
private class |
Rfc5424Layout.FieldFormatter |
private class |
Rfc5424Layout.IncludeChecker
Includes only the listed keys.
|
private static interface |
Rfc5424Layout.ListChecker
Interface used to check keys in a Map.
|
private class |
Rfc5424Layout.NoopChecker
Does nothing.
|
private class |
Rfc5424Layout.StructuredDataElement |
AbstractStringLayout.Builder<B extends AbstractStringLayout.Builder<B>>, AbstractStringLayout.Serializer, AbstractStringLayout.Serializer2
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
appName |
private static java.lang.String |
COMPONENT_KEY |
private java.lang.String |
configName |
static int |
DEFAULT_ENTERPRISE_NUMBER
Not a very good default - it is the Apache Software Foundation's enterprise number.
|
static java.lang.String |
DEFAULT_ID
The default event id.
|
static java.lang.String |
DEFAULT_MDCID
Default MDC ID: "mdc" .
|
private java.lang.String |
defaultId |
private int |
enterpriseNumber |
private java.lang.String |
escapeNewLine |
private java.lang.String |
eventPrefix |
private java.util.List<PatternFormatter> |
exceptionFormatters |
private Facility |
facility |
private java.util.Map<java.lang.String,Rfc5424Layout.FieldFormatter> |
fieldFormatters |
private boolean |
includeMdc |
private boolean |
includeNewLine |
private long |
lastTimestamp |
private static java.lang.String |
LF |
private Rfc5424Layout.ListChecker |
listChecker |
private java.lang.String |
localHostName |
private java.util.List<java.lang.String> |
mdcExcludes |
private java.lang.String |
mdcId |
private java.util.List<java.lang.String> |
mdcIncludes |
private java.lang.String |
mdcPrefix |
private java.util.List<java.lang.String> |
mdcRequired |
private StructuredDataId |
mdcSdId |
private java.lang.String |
messageId |
private static int |
MILLIS_PER_MINUTE |
private static int |
MINUTES_PER_HOUR |
static java.util.regex.Pattern |
NEWLINE_PATTERN
Match newlines in a platform-independent manner.
|
private Rfc5424Layout.ListChecker |
noopChecker |
static java.util.regex.Pattern |
PARAM_VALUE_ESCAPE_PATTERN
Match characters which require escaping.
|
private java.lang.String |
procId |
private static int |
THREE_DIGITS |
private java.lang.String |
timestamppStr |
private static int |
TWO_DIGITS |
private boolean |
useTlsMessageFormat |
DEFAULT_STRING_BUILDER_SIZE, MAX_STRING_BUILDER_SIZE
configuration, eventCount, footer, header, LOGGER
ELEMENT_TYPE
Modifier | Constructor and Description |
---|---|
private |
Rfc5424Layout(Configuration config,
Facility facility,
java.lang.String id,
int ein,
boolean includeMDC,
boolean includeNL,
java.lang.String escapeNL,
java.lang.String mdcId,
java.lang.String mdcPrefix,
java.lang.String eventPrefix,
java.lang.String appName,
java.lang.String messageId,
java.lang.String excludes,
java.lang.String includes,
java.lang.String required,
java.nio.charset.Charset charset,
java.lang.String exceptionPattern,
boolean useTLSMessageFormat,
LoggerFields[] loggerFields) |
Modifier and Type | Method and Description |
---|---|
private void |
addStructuredData(java.util.Map<java.lang.String,Rfc5424Layout.StructuredDataElement> sdElements,
StructuredDataMessage data) |
private void |
appendAppName(java.lang.StringBuilder buffer) |
private void |
appendHostName(java.lang.StringBuilder buffer) |
private void |
appendMap(java.lang.String prefix,
java.util.Map<java.lang.String,java.lang.String> map,
java.lang.StringBuilder sb,
Rfc5424Layout.ListChecker checker) |
private void |
appendMessage(java.lang.StringBuilder buffer,
LogEvent event) |
private void |
appendMessageId(java.lang.StringBuilder buffer,
Message message) |
private void |
appendPriority(java.lang.StringBuilder buffer,
Level logLevel) |
private void |
appendProcessId(java.lang.StringBuilder buffer) |
private void |
appendSpace(java.lang.StringBuilder buffer) |
private void |
appendStructuredElements(java.lang.StringBuilder buffer,
LogEvent event) |
private void |
appendTimestamp(java.lang.StringBuilder buffer,
long milliseconds) |
private void |
checkRequired(java.util.Map<java.lang.String,java.lang.String> map) |
private java.lang.String |
computeTimeStampString(long now) |
private java.util.Map<java.lang.String,Rfc5424Layout.FieldFormatter> |
createFieldFormatters(LoggerFields[] loggerFields,
Configuration config) |
static Rfc5424Layout |
createLayout(Facility facility,
java.lang.String id,
int enterpriseNumber,
boolean includeMDC,
java.lang.String mdcId,
java.lang.String mdcPrefix,
java.lang.String eventPrefix,
boolean newLine,
java.lang.String escapeNL,
java.lang.String appName,
java.lang.String msgId,
java.lang.String excludes,
java.lang.String includes,
java.lang.String required,
java.lang.String exceptionPattern,
boolean useTlsMessageFormat,
LoggerFields[] loggerFields,
Configuration config)
Create the RFC 5424 Layout.
|
private static PatternParser |
createPatternParser(Configuration config,
java.lang.Class<? extends PatternConverter> filterClass)
Create a PatternParser.
|
private java.lang.String |
escapeNewlines(java.lang.String text,
java.lang.String replacement) |
private java.lang.String |
escapeSDParams(java.lang.String value) |
private void |
formatStructuredElement(java.lang.String id,
Rfc5424Layout.StructuredDataElement data,
java.lang.StringBuilder sb,
Rfc5424Layout.ListChecker checker) |
java.util.Map<java.lang.String,java.lang.String> |
getContentFormat()
Gets this Rfc5424Layout's content format.
|
Facility |
getFacility() |
private java.lang.String |
getId(StructuredDataId id) |
protected java.util.List<java.lang.String> |
getMdcExcludes() |
protected java.util.List<java.lang.String> |
getMdcIncludes() |
protected java.lang.String |
getProcId() |
private void |
pad(int val,
int max,
java.lang.StringBuilder buf) |
java.lang.String |
toSerializable(LogEvent event)
Formats a
LogEvent in conformance with the RFC 5424 Syslog specification. |
java.lang.String |
toString() |
getBytes, getCharset, getContentType, getFooter, getFooterSerializer, getHeader, getHeaderSerializer, getStringBuilder, getStringBuilderEncoder, serializeToBytes, serializeToString, toByteArray, trimToMaxSize
encode, getConfiguration, markEvent
public static final int DEFAULT_ENTERPRISE_NUMBER
public static final java.lang.String DEFAULT_ID
public static final java.util.regex.Pattern NEWLINE_PATTERN
public static final java.util.regex.Pattern PARAM_VALUE_ESCAPE_PATTERN
public static final java.lang.String DEFAULT_MDCID
private static final java.lang.String LF
private static final int TWO_DIGITS
private static final int THREE_DIGITS
private static final int MILLIS_PER_MINUTE
private static final int MINUTES_PER_HOUR
private static final java.lang.String COMPONENT_KEY
private final Facility facility
private final java.lang.String defaultId
private final int enterpriseNumber
private final boolean includeMdc
private final java.lang.String mdcId
private final StructuredDataId mdcSdId
private final java.lang.String localHostName
private final java.lang.String appName
private final java.lang.String messageId
private final java.lang.String configName
private final java.lang.String mdcPrefix
private final java.lang.String eventPrefix
private final java.util.List<java.lang.String> mdcExcludes
private final java.util.List<java.lang.String> mdcIncludes
private final java.util.List<java.lang.String> mdcRequired
private final Rfc5424Layout.ListChecker listChecker
private final Rfc5424Layout.ListChecker noopChecker
private final boolean includeNewLine
private final java.lang.String escapeNewLine
private final boolean useTlsMessageFormat
private long lastTimestamp
private java.lang.String timestamppStr
private final java.util.List<PatternFormatter> exceptionFormatters
private final java.util.Map<java.lang.String,Rfc5424Layout.FieldFormatter> fieldFormatters
private final java.lang.String procId
private Rfc5424Layout(Configuration config, Facility facility, java.lang.String id, int ein, boolean includeMDC, boolean includeNL, java.lang.String escapeNL, java.lang.String mdcId, java.lang.String mdcPrefix, java.lang.String eventPrefix, java.lang.String appName, java.lang.String messageId, java.lang.String excludes, java.lang.String includes, java.lang.String required, java.nio.charset.Charset charset, java.lang.String exceptionPattern, boolean useTLSMessageFormat, LoggerFields[] loggerFields)
private java.util.Map<java.lang.String,Rfc5424Layout.FieldFormatter> createFieldFormatters(LoggerFields[] loggerFields, Configuration config)
private static PatternParser createPatternParser(Configuration config, java.lang.Class<? extends PatternConverter> filterClass)
config
- The Configuration.filterClass
- Filter the returned plugins after calling the plugin manager.public java.util.Map<java.lang.String,java.lang.String> getContentFormat()
getContentFormat
in interface Layout<java.lang.String>
getContentFormat
in class AbstractLayout<java.lang.String>
public java.lang.String toSerializable(LogEvent event)
LogEvent
in conformance with the RFC 5424 Syslog specification.event
- The LogEvent.private void appendPriority(java.lang.StringBuilder buffer, Level logLevel)
private void appendTimestamp(java.lang.StringBuilder buffer, long milliseconds)
private void appendSpace(java.lang.StringBuilder buffer)
private void appendHostName(java.lang.StringBuilder buffer)
private void appendAppName(java.lang.StringBuilder buffer)
private void appendProcessId(java.lang.StringBuilder buffer)
private void appendMessageId(java.lang.StringBuilder buffer, Message message)
private void appendMessage(java.lang.StringBuilder buffer, LogEvent event)
private void appendStructuredElements(java.lang.StringBuilder buffer, LogEvent event)
private void addStructuredData(java.util.Map<java.lang.String,Rfc5424Layout.StructuredDataElement> sdElements, StructuredDataMessage data)
private java.lang.String escapeNewlines(java.lang.String text, java.lang.String replacement)
protected java.lang.String getProcId()
protected java.util.List<java.lang.String> getMdcExcludes()
protected java.util.List<java.lang.String> getMdcIncludes()
private java.lang.String computeTimeStampString(long now)
private void pad(int val, int max, java.lang.StringBuilder buf)
private void formatStructuredElement(java.lang.String id, Rfc5424Layout.StructuredDataElement data, java.lang.StringBuilder sb, Rfc5424Layout.ListChecker checker)
private java.lang.String getId(StructuredDataId id)
private void checkRequired(java.util.Map<java.lang.String,java.lang.String> map)
private void appendMap(java.lang.String prefix, java.util.Map<java.lang.String,java.lang.String> map, java.lang.StringBuilder sb, Rfc5424Layout.ListChecker checker)
private java.lang.String escapeSDParams(java.lang.String value)
public java.lang.String toString()
toString
in class java.lang.Object
@PluginFactory public static Rfc5424Layout createLayout(@PluginAttribute(value="facility",defaultString="LOCAL0") Facility facility, @PluginAttribute(value="id") java.lang.String id, @PluginAttribute(value="enterpriseNumber",defaultInt=18060) int enterpriseNumber, @PluginAttribute(value="includeMDC",defaultBoolean=true) boolean includeMDC, @PluginAttribute(value="mdcId",defaultString="mdc") java.lang.String mdcId, @PluginAttribute(value="mdcPrefix") java.lang.String mdcPrefix, @PluginAttribute(value="eventPrefix") java.lang.String eventPrefix, @PluginAttribute(value="newLine") boolean newLine, @PluginAttribute(value="newLineEscape") java.lang.String escapeNL, @PluginAttribute(value="appName") java.lang.String appName, @PluginAttribute(value="messageId") java.lang.String msgId, @PluginAttribute(value="mdcExcludes") java.lang.String excludes, @PluginAttribute(value="mdcIncludes") java.lang.String includes, @PluginAttribute(value="mdcRequired") java.lang.String required, @PluginAttribute(value="exceptionPattern") java.lang.String exceptionPattern, @PluginAttribute(value="useTlsMessageFormat") boolean useTlsMessageFormat, @PluginElement(value="LoggerFields") LoggerFields[] loggerFields, @PluginConfiguration Configuration config)
facility
- The Facility is used to try to classify the message.id
- The default structured data id to use when formatting according to RFC 5424.enterpriseNumber
- The IANA enterprise number.includeMDC
- Indicates whether data from the ThreadContextMap will be included in the RFC 5424 Syslog
record. Defaults to "true:.mdcId
- The id to use for the MDC Structured Data Element.mdcPrefix
- The prefix to add to MDC key names.eventPrefix
- The prefix to add to event key names.newLine
- If true, a newline will be appended to the end of the syslog record. The default is false.escapeNL
- String that should be used to replace newlines within the message text.appName
- The value to use as the APP-NAME in the RFC 5424 syslog record.msgId
- The default value to be used in the MSGID field of RFC 5424 syslog records.excludes
- A comma separated list of MDC keys that should be excluded from the LogEvent.includes
- A comma separated list of MDC keys that should be included in the FlumeEvent.required
- A comma separated list of MDC keys that must be present in the MDC.exceptionPattern
- The pattern for formatting exceptions.useTlsMessageFormat
- If true the message will be formatted according to RFC 5425.loggerFields
- Container for the KeyValuePairs containing the patternsconfig
- The Configuration. Some Converters require access to the Interpolator.public Facility getFacility()