本文整理匯總了Java中org.slf4j.MDC.getCopyOfContextMap方法的典型用法代碼示例。如果您正苦於以下問題:Java MDC.getCopyOfContextMap方法的具體用法?Java MDC.getCopyOfContextMap怎麽用?Java MDC.getCopyOfContextMap使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.slf4j.MDC
的用法示例。
在下文中一共展示了MDC.getCopyOfContextMap方法的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: handler
import org.slf4j.MDC; //導入方法依賴的package包/類
public void handler(CloudwatchEvent event) throws ExecutionException, InterruptedException {
LOG.info("Received event = [{}]", event.getId());
final Metrics metrics = new Metrics();
// Pass Mapped Diagnostic Context (MDC) into child thread, for logging Request ID
final Map<String, String> contextMap = MDC.getCopyOfContextMap();
Runnable task = () -> {
if (contextMap != null) {
MDC.setContextMap(contextMap);
}
LOG.info("Starting fibonacci task");
timedFibonacci(metrics);
};
// Start one task in the background, and one in this thread
Future<?> future = executorService.submit(task);
task.run();
// Wait for background task, log out metrics
future.get();
metrics.report(LOG);
}
示例2: call
import org.slf4j.MDC; //導入方法依賴的package包/類
@Override
public K call() throws Exception {
LOG.debug("Call using MDCHystrixContextCallable...");
Map childMDC = MDC.getCopyOfContextMap();
LOG.debug("childMDC --> " + childMDC);
try {
if (parentMDC != null) {
MDC.setContextMap(parentMDC);
}
LOG.debug("parentMDC --> " + parentMDC);
return actual.call();
} finally {
if (childMDC != null) {
MDC.setContextMap(childMDC);
}
}
}
開發者ID:PacktPublishing,項目名稱:Mastering-Microservices-with-Java-9-Second-Edition,代碼行數:18,代碼來源:MDCConcurrentCallable.java
示例3: wrapTask
import org.slf4j.MDC; //導入方法依賴的package包/類
/**
* Override this to customize how the background task is created.
*
* @param task the task to be run in the background
* @return the runnable of the wrapped task
*/
protected Runnable wrapTask(Runnable task) {
// Preserve the MDC context of the caller thread.
Map contextMap = MDC.getCopyOfContextMap();
if (contextMap != null) {
return new MDCRunnableAdapter(task, contextMap);
}
return task;
}
示例4: wrapTask
import org.slf4j.MDC; //導入方法依賴的package包/類
/**
* Override this to customize how the background task is created.
*
* @param <T> the type of the Task
* @param task the Task to be wrapped
* @return the wrapped task
*/
protected <T> Callable<T> wrapTask(Callable<T> task) {
// Preserve the MDC context of the caller thread.
Map contextMap = MDC.getCopyOfContextMap();
if (contextMap != null) {
return new MDCCallableAdapter(task, contextMap);
}
return task;
}
示例5: decorate
import org.slf4j.MDC; //導入方法依賴的package包/類
@Override
public Runnable decorate(Runnable runnable) {
Map<String, String> contextMap = MDC.getCopyOfContextMap();
return () -> {
try {
MDC.setContextMap(contextMap);
runnable.run();
} finally {
MDC.clear();
}
};
}
示例6: MDCConcurrentCallable
import org.slf4j.MDC; //導入方法依賴的package包/類
public MDCConcurrentCallable(Callable<K> actual) {
LOG.debug("Init MDCHystrixContextCallable...");
this.actual = actual;
this.parentMDC = MDC.getCopyOfContextMap();
LOG.debug("actual --> " + actual);
LOG.debug("this.parentMDC --> " + this.parentMDC);
}
開發者ID:PacktPublishing,項目名稱:Mastering-Microservices-with-Java-9-Second-Edition,代碼行數:8,代碼來源:MDCConcurrentCallable.java
示例7: format
import org.slf4j.MDC; //導入方法依賴的package包/類
@Override
@SuppressWarnings("unchecked")
public String format(final LogRecord record) {
// Reset working buffer. If the buffer is too large, then we need a new
// one in order to avoid the penalty of creating a large array.
if (buf.capacity() > UPPER_LIMIT) {
buf = new StringBuffer(DEFAULT_SIZE);
} else {
buf.setLength(0);
}
buf.append("<log4j:event logger=\"");
buf.append(Transform.escapeTags(record.getLoggerName()));
buf.append("\" timestamp=\"");
buf.append(record.getMillis());
buf.append("\" level=\"");
buf.append(Transform.escapeTags(record.getLevel().getName()));
buf.append("\" thread=\"");
buf.append(String.valueOf(record.getThreadID()));
buf.append("\">\r\n");
buf.append("<log4j:message><![CDATA[");
// Append the rendered message. Also make sure to escape any
// existing CDATA sections.
Transform.appendEscapingCDATA(buf, record.getMessage());
buf.append("]]></log4j:message>\r\n");
if (record.getThrown() != null) {
String[] s = Transform.getThrowableStrRep(record.getThrown());
if (s != null) {
buf.append("<log4j:throwable><![CDATA[");
for (String value : s) {
Transform.appendEscapingCDATA(buf, value);
buf.append("\r\n");
}
buf.append("]]></log4j:throwable>\r\n");
}
}
if (locationInfo) {
buf.append("<log4j:locationInfo class=\"");
buf.append(Transform.escapeTags(record.getSourceClassName()));
buf.append("\" method=\"");
buf.append(Transform.escapeTags(record.getSourceMethodName()));
buf.append("\" file=\"?\" line=\"?\"/>\r\n");
}
if (properties) {
Map contextMap = MDC.getCopyOfContextMap();
if (contextMap != null) {
Set keySet = contextMap.keySet();
if ((keySet != null) && (keySet.size() > 0)) {
buf.append("<log4j:properties>\r\n");
Object[] keys = keySet.toArray();
Arrays.sort(keys);
for (Object key1 : keys) {
String key = (key1 == null ? "" : key1.toString());
Object val = contextMap.get(key);
if (val != null) {
buf.append("<log4j:data name=\"");
buf.append(Transform.escapeTags(key));
buf.append("\" value=\"");
buf.append(Transform.escapeTags(String.valueOf(val)));
buf.append("\"/>\r\n");
}
}
buf.append("</log4j:properties>\r\n");
}
}
}
buf.append("</log4j:event>\r\n\r\n");
return buf.toString();
}
示例8: RunnableWrapperWithMdc
import org.slf4j.MDC; //導入方法依賴的package包/類
public RunnableWrapperWithMdc(Runnable wrapped) {
this.wrapped = wrapped;
// we are in the origin thread: capture the MDC
map = MDC.getCopyOfContextMap();
}
示例9: CallableWrapperWithMdc
import org.slf4j.MDC; //導入方法依賴的package包/類
public CallableWrapperWithMdc(Callable<T> wrapped) {
this.wrapped = wrapped;
// we are in the origin thread: capture the MDC
map = MDC.getCopyOfContextMap();
}
示例10: WayfRunnable
import org.slf4j.MDC; //導入方法依賴的package包/類
public WayfRunnable(Runnable runnable) {
this.runnable = runnable;
this.requestContext = RequestContextAccessor.get();
this.mdcContents = MDC.getCopyOfContextMap();
}