Class AddExtendedLoggingContext

java.lang.Object
com.adaptris.core.ServiceImp
com.adaptris.core.services.AddExtendedLoggingContext
All Implemented Interfaces:
AdaptrisComponent, ComponentLifecycle, ComponentLifecycleExtension, ConfigComment, MessageEventGenerator, Service, StateManagedComponent

@ComponentProfile(summary="Add a mapped diagnostic context for logging; useful for filtering", tag="service,logging,debug") public class AddExtendedLoggingContext extends ServiceImp
Add a mapped diagnostic context via MDC.put(String, String).

It can be useful to use a mapped diagnostic context to provide additional information into your logfile if the underlying logging system supports it (e.g. logback or log4j2)

As the diagnostic logging context is thread based; bear in mind that you will lose the context if part of the service execution chain contains a something like PoolingMessageSplitterService or similar (i.e. something with an underlying thread pool that acts on the message).

This is designed to work in conjunction with LoggingContextWorkflowInterceptor as it will add the following items based on object metadata, this is particular useful for above highlighted the scenario with PoolingMessageSplitterService.

  • channelid
  • workflowid
  • messageuniqueid

In the adapter configuration file this class is aliased as add-extended-logging-context-service which is the preferred alternative to the fully qualified classname when building your configuration.

  • Constructor Details

    • AddExtendedLoggingContext

      public AddExtendedLoggingContext()
  • Method Details

    • doService

      public void doService(AdaptrisMessage msg) throws ServiceException
      Description copied from interface: Service

      Apply the service to the message.

      Parameters:
      msg - the AdaptrisMessage to process
      Throws:
      ServiceException - wrapping any underlying Exceptions
    • initService

      protected void initService() throws CoreException
      Specified by:
      initService in class ServiceImp
      Throws:
      CoreException
    • closeService

      protected void closeService()
      Specified by:
      closeService in class ServiceImp
    • prepare

      public void prepare() throws CoreException
      Description copied from interface: ComponentLifecycleExtension
      Prepare for initialisation.
      Throws:
      CoreException
    • getValuesToSet

      public KeyValuePairList getValuesToSet()
    • setValuesToSet

      public void setValuesToSet(KeyValuePairList values)
      Set the list of values to set
      Parameters:
      values - the mapping to add
    • setUseDefaultKeys

      public void setUseDefaultKeys(Boolean useDefaultKeys)

      Sets whether to write channel, workflow and message id into the Mapped Diagnostic Context based on object metadata. The following keys will be added:

      • channelid
      • workflowid
      • messageuniqueid
      Parameters:
      useDefaultKeys - whether to populate the Mapped Diagnostic Context
    • getUseDefaultKeys

      public Boolean getUseDefaultKeys()

      Return whether the default keys will be populated

      Returns:
      whether the default keys will be populated