Class AbstractCompositeJsonFormatter<Event extends DeferredProcessingAware>
- Type Parameters:
Event- type of event (ILoggingEventorIAccessEvent).
- All Implemented Interfaces:
ContextAware, LifeCycle
- Direct Known Subclasses:
AccessEventCompositeJsonFormatter, LoggingEventCompositeJsonFormatter
JsonProviders.
The AbstractCompositeJsonFormatter starts the JSON object ('{'),
then delegates writing the contents of the object to the JsonProviders,
and then ends the JSON object ('}').
Jackson JsonGenerator are initially created with a "disconnected" output stream so they can be
reused multiple times with different target output stream.
JsonGenerator instances are *not* reused after they threw an exception. This is to prevent
reusing an instance whose internal state may be unpredictable.
- Author:
- brenuart
-
Field Summary
Fields inherited from class ContextAwareBase
context -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddDecorator(Decorator<?> decorator) Adds the given decorator of typeMapperBuilderDecorator,TokenStreamFactoryBuilderDecorator, orJsonGeneratorDecorator.voidaddJsonGeneratorDecorator(JsonGeneratorDecorator jsonGeneratorDecoratorToAdd) voidaddMapperBuilderDecorator(MapperBuilderDecorator mapperBuilderDecoratorToAdd) voidaddTokenStreamFactoryBuilderDecorator(TokenStreamFactoryBuilderDecorator tokenStreamFactoryBuilderDecoratorToAdd) Gets the name of the currently configured data format.Gets the currently configuredDataFormatFactory.Gets a mutableCompositeJsonGeneratorDecoratorcontaining all the currently configuredJsonGeneratorDecorators.Gets a mutableCompositeMapperBuilderDecoratorcontaining all the currently configuredMapperBuilderDecorators.Gets a mutableCompositeTokenStreamFactoryBuilderDecoratorcontaining all the currently configuredTokenStreamFactoryBuilderDecorators.booleanbooleanprotected voidvoidsetDataFormat(String dataFormat) Sets the dataformat to one of the build-in data formats ( "json"<F extends TokenStreamFactory, FB extends TSFBuilder<F,FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>, "yaml"<F extends TokenStreamFactory, FB extends TSFBuilder<F, FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>, "cbor"<F extends TokenStreamFactory, FB extends TSFBuilder<F, FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>, or "smile"<F extends TokenStreamFactory, FB extends TSFBuilder<F, FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>). voidsetDataFormatFactory(DataFormatFactory dataFormatFactory) Sets theDataFormatFactoryto be used for output.voidsetEncoding(String encodingName) voidsetFindAndRegisterJacksonModules(boolean findAndRegisterJacksonModules) voidsetProviders(JsonProviders<Event> jsonProviders) voidstart()voidstop()voidwriteEvent(Event event, OutputStream outputStream) Write an event in the given output stream.protected voidwriteEventToGenerator(JsonGenerator generator, Event event) Methods inherited from class ContextAwareBase
addError, addError, addInfo, addInfo, addStatus, addWarn, addWarn, getContext, getDeclaredOrigin, getStatusManager, setContext
-
Constructor Details
-
AbstractCompositeJsonFormatter
-
-
Method Details
-
start
-
stop
-
isStarted
-
writeEvent
Write an event in the given output stream.- Parameters:
event- the event to writeoutputStream- the output stream to write the event into- Throws:
IOException- thrown upon failure to write the event
-
writeEventToGenerator
- Throws:
IOException
-
prepareForDeferredProcessing
-
getDataFormat
Gets the name of the currently configured data format.- Returns:
- the name of the currently configured data format.
-
setDataFormat
Sets the dataformat to one of the build-in data formats ( "json"<F extends TokenStreamFactory, FB extends TSFBuilder<F,FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>, "yaml"<F extends TokenStreamFactory, FB extends TSFBuilder<F, FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>, "cbor"<F extends TokenStreamFactory, FB extends TSFBuilder<F, FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>, or "smile"<F extends TokenStreamFactory, FB extends TSFBuilder<F, FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>). For non-JSON data formats, the appropriate Jackson data format module must be on the classpath.
To set a custom (non-builtin) data format, use
setDataFormatFactory(DataFormatFactory)- Parameters:
dataFormat- "json"<F extends TokenStreamFactory, FB extends TSFBuilder<F,FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>, "yaml"<F extends TokenStreamFactory, FB extends TSFBuilder<F, FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>, "cbor"<F extends TokenStreamFactory, FB extends TSFBuilder<F, FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>>, or "smile"<F extends TokenStreamFactory, FB extends TSFBuilder<F, FB>, M extends ObjectMapper, MB extends MapperBuilder<M, MB>> - See Also:
-
getDataFormatFactory
Gets the currently configuredDataFormatFactory.- Returns:
- the currently configured
DataFormatFactory.
-
setDataFormatFactory
Sets theDataFormatFactoryto be used for output.For built-in formats, prefer using
setDataFormat(String)- Parameters:
dataFormatFactory- theDataFormatFactoryto be used for output.
-
addDecorator
Adds the given decorator of typeMapperBuilderDecorator,TokenStreamFactoryBuilderDecorator, orJsonGeneratorDecorator.These decorators decorate Jackson objects.
- Parameters:
decorator- the decorator to add (of typeMapperBuilderDecorator,TokenStreamFactoryBuilderDecorator, orJsonGeneratorDecorator)- Throws:
IllegalArgumentException- if an unsupported decorator is added
-
addJsonGeneratorDecorator
-
addTokenStreamFactoryBuilderDecorator
public void addTokenStreamFactoryBuilderDecorator(TokenStreamFactoryBuilderDecorator tokenStreamFactoryBuilderDecoratorToAdd) -
addMapperBuilderDecorator
-
getTokenStreamFactoryBuilderDecorator
Gets a mutableCompositeTokenStreamFactoryBuilderDecoratorcontaining all the currently configuredTokenStreamFactoryBuilderDecorators.- Returns:
- a mutable
CompositeTokenStreamFactoryBuilderDecoratorcontaining all the currently configuredTokenStreamFactoryBuilderDecorators.
-
getMapperBuilderDecorator
Gets a mutableCompositeMapperBuilderDecoratorcontaining all the currently configuredMapperBuilderDecorators.- Returns:
- a mutable
CompositeMapperBuilderDecoratorcontaining all the currently configuredMapperBuilderDecorators.
-
getJsonGeneratorDecorator
Gets a mutableCompositeJsonGeneratorDecoratorcontaining all the currently configuredJsonGeneratorDecorators.- Returns:
- a mutable
CompositeJsonGeneratorDecoratorcontaining all the currently configuredJsonGeneratorDecorators.
-
getProviders
-
getEncoding
-
setEncoding
-
setProviders
-
isFindAndRegisterJacksonModules
public boolean isFindAndRegisterJacksonModules() -
setFindAndRegisterJacksonModules
public void setFindAndRegisterJacksonModules(boolean findAndRegisterJacksonModules)
-