
log
文章平均质量分 74
普通网友
这个作者很懒,什么都没留下…
展开
-
log(一)——MDC入门
1.MDC是什么 先来一段原版注释, /** * This class hides and serves as a substitute for the underlying logging * system's MDC implementation. * * * If the underlying logging system offers MDC functionality,原创 2016-07-19 14:31:42 · 7166 阅读 · 0 评论 -
log(四)——MDC使用
1.MDC put 用MDC的put方法,把需要的context添加到当前线程的context map中。 之前说过,子线程在创建的时候会把父线程中的inheritableThreadLocals变量设置到子线程的inheritableThreadLocals中,而MDC内部是用InheritableThreadLocal实现的,所以自然会把父线程中的上下文带到子线程中。 2.getCopy原创 2016-07-20 11:50:48 · 9494 阅读 · 1 评论 -
log(五)——MDC总结
1.为什么最开始子线程会得到父线程MDC设置的内容? 创建子线程的时候会调用init(ThreadGroup g, Runnable target, String name,long stackSize)方法,判断如果parent.inheritableThreadLocals不为null就调用createInheritedMap方法把父线程的ThreadLocal里保存的变量都加载到子线程的T原创 2016-07-21 11:27:47 · 6935 阅读 · 0 评论 -
log(三)——MDCAdapter之实现LogbackMDCAdapter
1.put /** * Put a context value (the val parameter) as identified with the * key parameter into the current thread's context map. Note that * contrary to log4j, the val parameter can be nu原创 2016-07-19 20:40:54 · 4444 阅读 · 1 评论 -
log(二)——MDC实现之ThreadLocal
因为MDC底层是用ThreadLocal实现的,所以这里补充一些和ThreadLocal相关的知识点。 1.ThreadLocal的三个层次 关于ThreadLocal有三个层次,可以按照这三个层次去理解就不会乱。 三个层次 * 第一层是Thread空间 * 第二层是Thread中的两个ThreadLocalMap,threadLocals和inheritableThreadLoca原创 2016-07-19 17:12:54 · 3175 阅读 · 1 评论