Package ch.qos.logback.classic.util
Class LogbackMDCAdapter
- java.lang.Object
-
- ch.qos.logback.classic.util.LogbackMDCAdapter
-
- All Implemented Interfaces:
org.slf4j.spi.MDCAdapter
public class LogbackMDCAdapter extends java.lang.Object implements org.slf4j.spi.MDCAdapterA Mapped Diagnostic Context, or MDC in short, is an instrument for distinguishing interleaved log output from different sources. Log output is typically interleaved when a server handles multiple clients near-simultaneously. The MDC is managed on a per thread basis. A child thread automatically inherits a copy of the mapped diagnostic context of its parent. For more information about MDC, please refer to the online manual at http://logback.qos.ch/manual/mdc.html
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.ThreadLocal<java.util.Map<java.lang.String,java.lang.String>>copyOnThreadLocal(package private) java.lang.ThreadLocal<java.lang.Integer>lastOperationprivate static intMAP_COPY_OPERATIONprivate static intWRITE_OPERATION
-
Constructor Summary
Constructors Constructor Description LogbackMDCAdapter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Clear all entries in the MDC.private java.util.Map<java.lang.String,java.lang.String>duplicateAndInsertNewMap(java.util.Map<java.lang.String,java.lang.String> oldMap)java.lang.Stringget(java.lang.String key)Get the context identified by thekeyparameter.private java.lang.IntegergetAndSetLastOperation(int op)java.util.Map<java.lang.String,java.lang.String>getCopyOfContextMap()Return a copy of the current thread's context map.java.util.Set<java.lang.String>getKeys()Returns the keys in the MDC as aSet.java.util.Map<java.lang.String,java.lang.String>getPropertyMap()Get the current thread's MDC as a map.voidput(java.lang.String key, java.lang.String val)Put a context value (thevalparameter) as identified with thekeyparameter into the current thread's context map.voidremove(java.lang.String key)Remove the the context identified by thekeyparameter.voidsetContextMap(java.util.Map<java.lang.String,java.lang.String> contextMap)private booleanwasLastOpReadOrNull(java.lang.Integer lastOp)
-
-
-
Field Detail
-
copyOnThreadLocal
final java.lang.ThreadLocal<java.util.Map<java.lang.String,java.lang.String>> copyOnThreadLocal
-
WRITE_OPERATION
private static final int WRITE_OPERATION
- See Also:
- Constant Field Values
-
MAP_COPY_OPERATION
private static final int MAP_COPY_OPERATION
- See Also:
- Constant Field Values
-
lastOperation
final java.lang.ThreadLocal<java.lang.Integer> lastOperation
-
-
Method Detail
-
getAndSetLastOperation
private java.lang.Integer getAndSetLastOperation(int op)
-
wasLastOpReadOrNull
private boolean wasLastOpReadOrNull(java.lang.Integer lastOp)
-
duplicateAndInsertNewMap
private java.util.Map<java.lang.String,java.lang.String> duplicateAndInsertNewMap(java.util.Map<java.lang.String,java.lang.String> oldMap)
-
put
public void put(java.lang.String key, java.lang.String val) throws java.lang.IllegalArgumentExceptionPut a context value (thevalparameter) as identified with thekeyparameter into the current thread's context map. Note that contrary to log4j, thevalparameter can be null. If the current thread does not have a context map it is created as a side effect of this call.- Specified by:
putin interfaceorg.slf4j.spi.MDCAdapter- Throws:
java.lang.IllegalArgumentException- in case the "key" parameter is null
-
remove
public void remove(java.lang.String key)
Remove the the context identified by thekeyparameter.- Specified by:
removein interfaceorg.slf4j.spi.MDCAdapter
-
clear
public void clear()
Clear all entries in the MDC.- Specified by:
clearin interfaceorg.slf4j.spi.MDCAdapter
-
get
public java.lang.String get(java.lang.String key)
Get the context identified by thekeyparameter.- Specified by:
getin interfaceorg.slf4j.spi.MDCAdapter
-
getPropertyMap
public java.util.Map<java.lang.String,java.lang.String> getPropertyMap()
Get the current thread's MDC as a map. This method is intended to be used internally.
-
getKeys
public java.util.Set<java.lang.String> getKeys()
Returns the keys in the MDC as aSet. The returned value can be null.
-
getCopyOfContextMap
public java.util.Map<java.lang.String,java.lang.String> getCopyOfContextMap()
Return a copy of the current thread's context map. Returned value may be null.- Specified by:
getCopyOfContextMapin interfaceorg.slf4j.spi.MDCAdapter
-
setContextMap
public void setContextMap(java.util.Map<java.lang.String,java.lang.String> contextMap)
- Specified by:
setContextMapin interfaceorg.slf4j.spi.MDCAdapter
-
-