コード例 #1
0
ファイル: CDC.java プロジェクト: jstarek/dcache
 /**
  * Setup the cell diagnostic context of the calling thread. Threads created from the calling
  * thread automatically inherit this information. The old diagnostic context is captured and
  * returned.
  */
 public static CDC reset(String cellName, String domainName) {
   CDC cdc = new CDC();
   setMdc(MDC_CELL, cellName);
   setMdc(MDC_DOMAIN, domainName);
   MDC.remove(MDC_SESSION);
   NDC.clear();
   return cdc;
 }
コード例 #2
0
ファイル: CDC.java プロジェクト: jstarek/dcache
 private void apply() {
   setMdc(MDC_DOMAIN, _domain);
   setMdc(MDC_CELL, _cell);
   setMdc(MDC_SESSION, _session);
   if (_ndc == null) {
     NDC.clear();
   } else {
     NDC.set(_ndc);
   }
 }
コード例 #3
0
ファイル: CDC.java プロジェクト: jstarek/dcache
 /** Execute the given runnable within the context of this CDC. */
 public void execute(Runnable r) {
   String session = MDC.get(MDC_SESSION);
   String cell = MDC.get(MDC_CELL);
   String domain = MDC.get(MDC_DOMAIN);
   NDC ndc = NDC.cloneNdc();
   try {
     apply();
     r.run();
   } finally {
     setMdc(MDC_DOMAIN, domain);
     setMdc(MDC_CELL, cell);
     setMdc(MDC_SESSION, session);
     NDC.set(ndc);
   }
 }
コード例 #4
0
ファイル: CDC.java プロジェクト: jstarek/dcache
 /**
  * Setup message related diagnostic context for the calling thread. Adds information about a
  * message to the MDC and NDC.
  *
  * @see clearMessageContext
  */
 public static void setMessageContext(CellMessage envelope) {
   Object session = envelope.getSession();
   NDC.push(getMessageContext(envelope));
   setMdc(MDC_SESSION, (session == null) ? null : session.toString());
 }
コード例 #5
0
ファイル: CDC.java プロジェクト: jstarek/dcache
 /**
  * Sets the session in the MDC for the calling thread.
  *
  * @param session Session identifier.
  */
 public static void setSession(String session) {
   setMdc(MDC_SESSION, session);
 }