Module org.elasticsearch.server
Package org.elasticsearch.common.logging
Class DynamicContextDataProvider
java.lang.Object
org.elasticsearch.common.logging.DynamicContextDataProvider
- All Implemented Interfaces:
org.apache.logging.log4j.core.util.ContextDataProvider
public class DynamicContextDataProvider
extends Object
implements org.apache.logging.log4j.core.util.ContextDataProvider
An implementation of log4j2's
ContextDataProvider
that can be configured at runtime
(after being loaded by log4j's init mechanism).
A ContextDataProvider
can enrich a logging event with additional "context data" (a string-to-string map of additional fields).
Elasticsearch (via ECSJsonLayout
logs these additional fields in the json formatted log.
Log4j loads ContextDataProvider
instances using SPI during logging initialisation. In Elasticsearch this initialisation happens
early in the bootstrap process, before Elasticsearch modules and plugins are loaded. Thus, it is not possible for an Elasticsearch plugin
to register a ContextDataProvider
service with log4j.
Instead, Elasticsearch allows plugins to implement the LoggingDataProvider
which is loaded via Elasticsearch's SPI implementation
(as part of plugin loading). This DynamicContextDataProvider
class is the bridge between the Elasticsearch and log4j systems.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
setDataProviders
(List<? extends LoggingDataProvider> dataProviders) 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.util.ContextDataProvider
supplyStringMap
-
Constructor Details
-
DynamicContextDataProvider
public DynamicContextDataProvider()
-
-
Method Details
-
setDataProviders
-
supplyContextData
- Specified by:
supplyContextData
in interfaceorg.apache.logging.log4j.core.util.ContextDataProvider
-