Class KeyValuePairsJsonProvider
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.KeyValuePairsJsonProvider
- All Implemented Interfaces:
ContextAware,FieldNamesAware<LogstashFieldNames>,JsonProvider<ILoggingEvent>
public class KeyValuePairsJsonProvider
extends AbstractFieldJsonProvider<ILoggingEvent>
implements FieldNamesAware<LogstashFieldNames>
Includes key value pairs added from slf4j's fluent api in the output according to
includeKeyNames and excludeKeyNames.
There are three valid combinations of includeKeyNames
and excludeKeyNames:
- When
includeKeyNamesandexcludeKeyNamesare both empty, then all entries will be included. - When
includeKeyNamesis not empty andexcludeKeyNamesis empty, then only those entries with key names inincludeKeyNameswill be included. - When
includeKeyNamesis empty andexcludeKeyNamesis not empty, then all entries except those with key names inexcludeKeyNameswill be included.
It is a configuration error for both includeKeyNames
and excludeKeyNames to be not empty.
By default, for each key value pair, the key is output as the field name.
This can be changed by specifying an explicit field name to use for a ke
via addKeyFieldName(String)
If the fieldName is set, then the pairs will be written to that field as a subobject. Otherwise, the pairs are written inline.
-
Field Summary
Fields inherited from class ch.qos.logback.core.spi.ContextAwareBase
context -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddExcludeKeyName(String excludedKeyName) voidaddIncludeKeyName(String includedKeyName) voidaddKeyFieldName(String keyFieldName) Adds the given keyFieldName entry in the form keyName=fieldName to use an alternative field name for an KeyValuePair key.voidsetExcludeKeyNames(List<String> excludeKeyNames) voidsetFieldNames(LogstashFieldNames fieldNames) voidsetIncludeKeyNames(List<String> includeKeyNames) voidstart()Start the provider after all configuration properties are set.voidwriteTo(JsonGenerator generator, ILoggingEvent event) Writes information about the event, to the given generator.Methods inherited from class net.logstash.logback.composite.AbstractFieldJsonProvider
getFieldName, setFieldNameMethods inherited from class net.logstash.logback.composite.AbstractJsonProvider
assertIsStarted, isStarted, prepareForDeferredProcessing, stopMethods inherited from class ch.qos.logback.core.spi.ContextAwareBase
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContextMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ch.qos.logback.core.spi.ContextAware
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, setContext
-
Constructor Details
-
KeyValuePairsJsonProvider
public KeyValuePairsJsonProvider()
-
-
Method Details
-
start
public void start()Description copied from interface:JsonProviderStart the provider after all configuration properties are set.- Specified by:
startin interfaceJsonProvider<ILoggingEvent>- Overrides:
startin classAbstractJsonProvider<ILoggingEvent>
-
writeTo
Description copied from interface:JsonProviderWrites 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:
writeToin interfaceJsonProvider<ILoggingEvent>- Parameters:
generator- theJsonGeneratorto produce JSON contentevent- the event to convert into JSON- Throws:
IOException- if an I/O error occurs
-
setFieldNames
- Specified by:
setFieldNamesin interfaceFieldNamesAware<LogstashFieldNames>
-
getIncludeKeyNames
-
addIncludeKeyName
-
setIncludeKeyNames
-
getExcludeKeyNames
-
addExcludeKeyName
-
setExcludeKeyNames
-
getKeyFieldNames
-
addKeyFieldName
Adds the given keyFieldName entry in the form keyName=fieldName to use an alternative field name for an KeyValuePair key.- Parameters:
keyFieldName- a string in the form kvpKeyName=fieldName that identifies what field name to use for a specific KeyValuePair key.
-