Class MdcJsonProvider
java.lang.Object
ch.qos.logback.core.spi.ContextAwareBase
net.logstash.logback.composite.AbstractJsonProvider<Event>
net.logstash.logback.composite.AbstractFieldJsonProvider<ILoggingEvent>
net.logstash.logback.composite.loggingevent.MdcJsonProvider
- All Implemented Interfaces:
ContextAware
,FieldNamesAware<LogstashFieldNames>
,JsonProvider<ILoggingEvent>
public class MdcJsonProvider
extends AbstractFieldJsonProvider<ILoggingEvent>
implements FieldNamesAware<LogstashFieldNames>
Includes
MDC
properties in the JSON output according to
includeMdcKeyNames
and excludeMdcKeyNames
.
There are three valid combinations of includeMdcKeyNames
and excludeMdcKeyNames
:
- When
includeMdcKeyNames
andexcludeMdcKeyNames
are both empty, then all entries will be included. - When
includeMdcKeyNames
is not empty andexcludeMdcKeyNames
is empty, then only those entries with key names inincludeMdcKeyNames
will be included. - When
includeMdcKeyNames
is empty andexcludeMdcKeyNames
is not empty, then all entries except those with key names inexcludeMdcKeyNames
will be included.
It is a configuration error for both includeMdcKeyNames
and excludeMdcKeyNames
to be not empty.
By default, for each entry in the MDC, the MDC key is output as the field name.
This can be changed by specifying an explicit field name to use for an MDC key
via addMdcKeyFieldName(String)
If the fieldName is set, then the properties will be written to that field as a subobject. Otherwise, the properties are written inline.
-
Field Summary
Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase
context
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addExcludeMdcKeyName
(String excludedMdcKeyName) void
addIncludeMdcKeyName
(String includedMdcKeyName) void
addMdcKeyFieldName
(String mdcKeyFieldName) Adds the given mdcKeyFieldName entry in the form mdcKeyName=fieldName to use an alternative field name for an MDC key.void
setExcludeMdcKeyNames
(List<String> excludeMdcKeyNames) void
setFieldNames
(LogstashFieldNames fieldNames) void
setIncludeMdcKeyNames
(List<String> includeMdcKeyNames) void
start()
Start the provider after all configuration properties are set.void
writeTo
(JsonGenerator generator, ILoggingEvent event) Writes information about the event, to the given generator.Methods inherited from class net.logstash.logback.composite.AbstractFieldJsonProvider
getFieldName, setFieldName
Methods inherited from class net.logstash.logback.composite.AbstractJsonProvider
assertIsStarted, isStarted, prepareForDeferredProcessing, stop
Methods inherited from class ch.qos.logback.core.spi.ContextAwareBase
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface ch.qos.logback.core.spi.ContextAware
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, setContext
-
Constructor Details
-
MdcJsonProvider
public MdcJsonProvider()
-
-
Method Details
-
start
public void start()Description copied from interface:JsonProvider
Start the provider after all configuration properties are set.- Specified by:
start
in interfaceJsonProvider<ILoggingEvent>
- Overrides:
start
in classAbstractJsonProvider<ILoggingEvent>
-
writeTo
Description copied from interface:JsonProvider
Writes information about the event, to the given generator.When called, the generator is assumed to be within a JSON object context (i.e. this provider should write fields and their values to the generator). Upon return, the generator should be within the same JSON object context.
- Specified by:
writeTo
in interfaceJsonProvider<ILoggingEvent>
- Parameters:
generator
- theJsonGenerator
to produce JSON contentevent
- the event to convert into JSON- Throws:
IOException
- if an I/O error occurs
-
setFieldNames
- Specified by:
setFieldNames
in interfaceFieldNamesAware<LogstashFieldNames>
-
getIncludeMdcKeyNames
-
addIncludeMdcKeyName
-
setIncludeMdcKeyNames
-
getExcludeMdcKeyNames
-
addExcludeMdcKeyName
-
setExcludeMdcKeyNames
-
getMdcKeyFieldNames
-
addMdcKeyFieldName
Adds the given mdcKeyFieldName entry in the form mdcKeyName=fieldName to use an alternative field name for an MDC key.- Parameters:
mdcKeyFieldName
- a string in the form mdcKeyName=fieldName that identifies what field name to use for a specific MDC key.
-