Class AddExtendedLoggingContext
- java.lang.Object
-
- com.adaptris.core.ServiceImp
-
- com.adaptris.core.services.AddExtendedLoggingContext
-
- All Implemented Interfaces:
AdaptrisComponent
,ComponentLifecycle
,ComponentLifecycleExtension
,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 viaMDC.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 withPoolingMessageSplitterService
.- 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.
-
-
Field Summary
-
Fields inherited from class com.adaptris.core.ServiceImp
log
-
-
Constructor Summary
Constructors Constructor Description AddExtendedLoggingContext()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
closeService()
void
doService(AdaptrisMessage msg)
Apply the service to the message.java.lang.Boolean
getUseDefaultKeys()
Return whether the default keys will be populatedKeyValuePairList
getValuesToSet()
protected void
initService()
void
prepare()
Prepare for initialisation.void
setUseDefaultKeys(java.lang.Boolean useDefaultKeys)
Sets whether to write channel, workflow and message id into the Mapped Diagnostic Context based on object metadata.void
setValuesToSet(KeyValuePairList values)
Set the list of values to set-
Methods inherited from class com.adaptris.core.ServiceImp
changeState, close, continueOnFailure, createName, createQualifier, getContinueOnFail, getIsTrackingEndpoint, getUniqueId, init, isBranching, isTrackingEndpoint, requestClose, requestInit, requestStart, requestStop, retrieveComponentState, setContinueOnFail, setIsTrackingEndpoint, setUniqueId, start, stop
-
-
-
-
Method Detail
-
doService
public void doService(AdaptrisMessage msg) throws ServiceException
Description copied from interface:Service
Apply the service to the message.
- Parameters:
msg
- theAdaptrisMessage
to process- Throws:
ServiceException
- wrapping any underlyingException
s
-
initService
protected void initService() throws CoreException
- Specified by:
initService
in classServiceImp
- Throws:
CoreException
-
closeService
protected void closeService()
- Specified by:
closeService
in classServiceImp
-
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(java.lang.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 java.lang.Boolean getUseDefaultKeys()
Return whether the default keys will be populated
- Returns:
- whether the default keys will be populated
-
-