Java 类org.apache.log4j.NDC 实例源码

项目:log4j-aws-appenders    文件:TestJsonLayout.java   
@Test
public void testNDC() throws Exception
{
    initialize("TestJsonLayout/default.properties");

    NDC.push("frist");  // misspelling intentional
    NDC.push("second");

    logger.debug(TEST_MESSAGE);

    NDC.clear();

    captureLoggingOutput();
    assertCommonElements(TEST_MESSAGE);
    DomAsserts.assertEquals("ndc", "frist second", dom, "/data/ndc");
}
项目:Equella    文件:AuthenticatedThread.java   
@Override
public final void run()
{
    try
    {
        NDC.inherit(loggingContext);
        CurrentUser.setUserState(callingThreadsAuthentication);
        CurrentInstitution.set(callingThreadsInstitution);
        doRun();
    }
    finally
    {
        CurrentInstitution.remove();
        CurrentUser.setUserState(null);
        NDC.remove();
    }
}
项目:unitimes    文件:MessageLogFilter.java   
private int ndcPush() {
    int count = 0;
    try {
        UserContext user = getUser();
        if (user != null) {
            NDC.push("uid:" + user.getTrueExternalUserId()); count++;
            if (user.getCurrentAuthority() != null) {
                NDC.push("role:" + user.getCurrentAuthority().getRole()); count++;
                Long sessionId = user.getCurrentAcademicSessionId();
                if (sessionId != null) {
                    NDC.push("sid:" + sessionId); count++;
                }
            }
        }
    } catch (Exception e) {}
    return count;
}
项目:cacheonix-core    文件:SortAlgo.java   
void bubbleSort() {
   LOG.info( "Entered the sort method.");

   for(int i = intArray.length -1; i >= 0  ; i--) {
     NDC.push("i=" + i);
     OUTER.debug("in outer loop.");
     for(int j = 0; j < i; j++) {
NDC.push("j=" + j);
// It is poor practice to ship code with log staments in tight loops.
// We do it anyway in this example.
INNER.debug( "in inner loop.");
        if(intArray[j] > intArray[j+1])
   swap(j, j+1);
NDC.pop();
     }
     NDC.pop();
   }
 }
项目:cacheonix-core    文件:XMLLayoutTest.java   
/**
   * Tests CDATA element within NDC content.  See bug 37560.
   */
 public void testNDCWithCDATA() throws Exception {
     Logger logger = Logger.getLogger("com.example.bar");
     Level level = Level.INFO;
     String ndcMessage ="<envelope><faultstring><![CDATA[The EffectiveDate]]></faultstring><envelope>";
     NDC.push(ndcMessage);
     LoggingEvent event =
       new LoggingEvent(
         "com.example.bar", logger, level, "Hello, World", null);
     Layout layout = createLayout();
     String result = layout.format(event);
     NDC.clear();
     Element parsedResult = parse(result);
     NodeList ndcs = parsedResult.getElementsByTagName("log4j:NDC");
     assertEquals(1, ndcs.getLength());
     StringBuffer buf = new StringBuffer();
     for(Node child = ndcs.item(0).getFirstChild();
             child != null;
             child = child.getNextSibling()) {
         buf.append(child.getNodeValue());
     }
     assertEquals(ndcMessage, buf.toString());
}
项目:cacheonix-core    文件:SocketServerTestCase.java   
/**
 *  The pattern on the server side: %5p %x %X{key1}%X{key4} [%t] %c{1} - %m%n 
 *  meaning that we are testing NDC, MDC and localization functionality across 
 *  the wire.  
*/
public void test4() throws Exception {
  socketAppender = new SocketAppender("localhost", PORT);
  socketAppender.setLocationInfo(true);
  rootLogger.addAppender(socketAppender);

  NDC.push("some");
  common("T4", "key4", "MDC-TEST4");
  NDC.pop();
  delay(1);
  //
  //  These tests check MDC operation which
  //    requires JDK 1.2 or later
  if(!System.getProperty("java.version").startsWith("1.1.")) {

      ControlFilter cf = new ControlFilter(new String[]{PAT4, EXCEPTION1, 
                           EXCEPTION2, EXCEPTION3, EXCEPTION4, EXCEPTION5});
      Transformer.transform(
        TEMP, FILTERED,
        new Filter[] { cf, new LineNumberFilter(), 
            new JunitTestRunnerFilter(),
            new SunReflectFilter() });

      assertTrue(Compare.compare(FILTERED, "witness/socketServer.4"));
  }
}
项目:cacheonix-core    文件:SocketServerTestCase.java   
/**
 * The pattern on the server side: %5p %x %X{hostID}${key7} [%t] %c{1} - %m%n 
 *
 * This test checks whether server side MDC works.
 */
public void test8() throws Exception {
  socketAppender = new SocketAppender("localhost", PORT);
  socketAppender.setLocationInfo(true);
  rootLogger.addAppender(socketAppender);

  NDC.push("some8");
  common("T8", "key8", "MDC-TEST8");
  NDC.pop();
  delay(2);
  //
  //  These tests check MDC operation which
  //    requires JDK 1.2 or later
  if(!System.getProperty("java.version").startsWith("1.1.")) {
      ControlFilter cf = new ControlFilter(new String[]{PAT8, EXCEPTION1, 
                           EXCEPTION2, EXCEPTION3, EXCEPTION4, EXCEPTION5});

      Transformer.transform(
        TEMP, FILTERED,
        new Filter[] { cf, new LineNumberFilter(), 
            new JunitTestRunnerFilter(),
            new SunReflectFilter() });
      assertTrue(Compare.compare(FILTERED, "witness/socketServer.8"));
  }
}
项目:openid4java    文件:HttpServletSupport.java   
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
    count_++;
    String ndcName = getClass().getName();
    ndcName = ndcName.substring(ndcName.lastIndexOf('.')+1);
    NDC.push(ndcName);
    NDC.push("call-" + count_);
    logger_.info("begin onService");
    try
    {
        onService(req, resp);
    }
    catch (Exception exc)
    {
        lastException = exc;
        resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    }
    finally
    {
        logger_.info("end onService");
        NDC.pop();
        NDC.pop();
    }
}
项目:unitime    文件:MessageLogFilter.java   
private int ndcPush() {
    int count = 0;
    try {
        UserContext user = getUser();
        if (user != null) {
            NDC.push("uid:" + user.getTrueExternalUserId()); count++;
            if (user.getCurrentAuthority() != null) {
                NDC.push("role:" + user.getCurrentAuthority().getRole()); count++;
                Long sessionId = user.getCurrentAcademicSessionId();
                if (sessionId != null) {
                    NDC.push("sid:" + sessionId); count++;
                }
            }
        }
    } catch (Exception e) {}
    return count;
}
项目:nabs    文件:SortAlgo.java   
void bubbleSort() {
   LOG.info( "Entered the sort method.");

   for(int i = intArray.length -1; i >= 0  ; i--) {
     NDC.push("i=" + i);
     OUTER.debug("in outer loop.");
     for(int j = 0; j < i; j++) {
NDC.push("j=" + j);
// It is poor practice to ship code with log staments in tight loops.
// We do it anyway in this example.
INNER.debug( "in inner loop.");
        if(intArray[j] > intArray[j+1])
   swap(j, j+1);
NDC.pop();
     }
     NDC.pop();
   }
 }
项目:imhotep    文件:ImhotepDaemon.java   
public void run() {
    NDC.push("main");

    try {
        log.info("starting up daemon");
        isStarted = true;
        //noinspection InfiniteLoopStatement
        while (!ss.isClosed()) {
            try {
                final Socket socket = ss.accept();
                socket.setSoTimeout(60000);
                socket.setTcpNoDelay(true);
                log.info("received connection, running");
                executor.execute(new DaemonWorker(socket));
            } catch (IOException e) {
                log.warn("server socket error", e);
            }
        }
    } finally {
        NDC.pop();
    }
}
项目:imcms    文件:DefaultImcmsServices.java   
public UserDomainObject verifyUser(String login, String password) {
    NDC.push("verifyUser");
    try {
        UserDomainObject result = null;

        boolean userAuthenticates = externalizedImcmsAuthAndMapper.authenticate(login, password);
        UserDomainObject user = externalizedImcmsAuthAndMapper.getUser(login);
        if (null == user) {
            mainLog.info("->User '" + login + "' failed to log in: User not found.");
        } else if (!user.isActive()) {
            logUserDeactivated(user);
        } else if (!userAuthenticates) {
            mainLog.info("->User '" + login + "' failed to log in: Wrong password.");
        } else {
            result = user;
            logUserLoggedIn(user);
        }
        return result;
    } finally {
        NDC.pop();
    }
}
项目:dz    文件:GCalScheduleUpdater.java   
/**
 * @return {@code true} if the object contains just the date, false otherwise.
 */
private boolean isDateOnly(EventDateTime source) {

    NDC.push("isDateOnly");

    try {

        if (source.getDate() != null && source.getDateTime() == null) {
            return true;
        }

        if (source.getDate() == null && source.getDateTime() != null) {
            return false;
        }

        logger.error("source: " + source);
        logger.error("date:   " + source.getDate());
        logger.error("time:   " + source.getDateTime());

        throw new IllegalArgumentException("API must have changed, both Date and DateTime are returned, need to revise the code");

    } finally {
        NDC.pop();
    }
}
项目:dz    文件:OwapiDeviceFactory.java   
@Override
public void networkFault(OneWireNetworkEvent e, String message) {

    NDC.push("networkFault");

    try {

        // This is an event pertinent to everyone

        consume(new DataSample<Double>(
                System.currentTimeMillis(), type + getAddress(), type + getAddress(),
                null, new OneWireIOException(message)));

    } finally {
        NDC.pop();
    }
}
项目:dz    文件:UnitModel.java   
/**
 * Make sure the signal given to {@link #consume(DataSample)} is sane.
 * 
 * @param signal Signal to check.
 */
private void check(DataSample<Double> signal) {

    NDC.push("check");

    try {

        if (signal == null) {
            throw new IllegalArgumentException("signal can't be null");
        }

        if (signal.isError()) {

            logger.error("Should not have propagated all the way here", signal.error);
            throw new IllegalArgumentException("Error signal should have been handled by zone controller");
        }

        if (signal.sample < 0.0) {

            throw new IllegalArgumentException("Signal must be non-negative, received " + signal.sample);
        }

    } finally {
        NDC.pop();
    }
}
项目:dz    文件:PidControllerSignalSplitter.java   
/**
 * {@inheritDoc}
 */
public void consume(DataSample<ProcessControllerStatus> signal) {

    // Let them consume the common process controller signal components
    super.consume(signal);

    // And now let's take care of PID specific components

    NDC.push("consume.pid");

    try {

        // This is a bit dangerous, but let's see how exactly dangerous 
        PidControllerStatus pidStatus = (PidControllerStatus) signal.sample; 

        long timestamp = signal.timestamp;
        String sourceName = signal.sourceName;

        consume(timestamp, sourceName + ".p", pidStatus.p);
        consume(timestamp, sourceName + ".i", pidStatus.i);
        consume(timestamp, sourceName + ".d", pidStatus.d);

    } finally {
        NDC.pop();
    }
}
项目:dz    文件:Container.java   
/**
 * Load the configuration already present in the jar file.
 * 
 * With some luck, all objects instantiated here will be garbage collected
 * pretty soon and won't matter.
 * 
 * If this bothers you, remove the method invocation and recompile.
 * 
 * @see #CF_EMBEDDED
 */
private void loadSampleConfiguration() {

    NDC.push("loadSampleConfiguration");

    try {

        // We don't need it for anything other than loading a sample,
        // hence local scope.
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[] { CF_EMBEDDED });

        // This class is the root of the instantiation hierarchy -
        // if it can be instantiated, then everything else is fine
        @SuppressWarnings("unused")
        DamperController dc = (DamperController) applicationContext.getBean("damper_controller-sample1");

    } catch (NoSuchBeanDefinitionException ex) {

        logger.debug("Oh, they found and deleted the sample configuration! Good.");

    } finally {
        NDC.pop();
    }
}
项目:dz    文件:ShellSensorTest.java   
/**
 * Make sure the {@link ShellSensor} properly executes a shell command given.
 */
public void testGood() throws IOException {

    NDC.push("testGood");

    try {

        if (!isOsSupported()) {
            return;
        }

        // VT: NOTE: The test string is Unix specific (shell builtin)
        ShellSensor ss = new ShellSensor("address", 1000, "echo 5.5");

        DataSample<Double> sample = ss.getSensorSignal();        
        logger.info("Sample: " + sample);

        assertFalse(sample.isError());
        assertEquals(5.5, sample.sample);

    } finally {
        NDC.pop();
    }
}
项目:dz    文件:SerialService.java   
public synchronized void setBaudRate(int baudRate) throws IOException {

        NDC.push("setBaudRate(" + baudRate + ")");

        try {
            if(!isPortOpen())
                throw new IOException(null, new IllegalStateException("Port Not Open"));

            try {
                // set baud rate
                serialPort.setSerialPortParams(baudRate,
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);

                logger.debug("Set baudRate=" + baudRate);

            } catch(UnsupportedCommOperationException ex) {
                throw new IOException("Failed to set baud rate: ", ex);
            }
        } finally {
            NDC.pop();
        }
    }
项目:lams    文件:Log4jNestedDiagnosticContextInterceptor.java   
/**
 * Removes the log message from the Log4J NDC after the request is processed.
 */
@Override
public void afterCompletion(WebRequest request, Exception ex) throws Exception {
    NDC.pop();
    if (NDC.getDepth() == 0) {
        NDC.remove();
    }
}
项目:lams    文件:Log4jNestedDiagnosticContextInterceptor.java   
/**
 * Removes the log message from the Log4J NDC when the processing thread is
 * exited after the start of asynchronous request handling.
 */
@Override
public void afterConcurrentHandlingStarted(WebRequest request) {
    NDC.pop();
    if (NDC.getDepth() == 0) {
        NDC.remove();
    }
}
项目:lams    文件:Log4jNestedDiagnosticContextFilter.java   
/**
 * Logs the before-request message through Log4J and
 * adds a message the Log4J NDC before the request is processed.
 */
@Override
protected void beforeRequest(HttpServletRequest request, String message) {
    if (log4jLogger.isDebugEnabled()) {
        log4jLogger.debug(message);
    }
    NDC.push(getNestedDiagnosticContextMessage(request));
}
项目:lams    文件:Log4jNestedDiagnosticContextFilter.java   
/**
 * Removes the log message from the Log4J NDC after the request is processed
 * and logs the after-request message through Log4J.
 */
@Override
protected void afterRequest(HttpServletRequest request, String message) {
    NDC.pop();
    if (NDC.getDepth() == 0) {
        NDC.remove();
    }
    if (log4jLogger.isDebugEnabled()) {
        log4jLogger.debug(message);
    }
}
项目:spring4-understanding    文件:Log4jNestedDiagnosticContextInterceptor.java   
/**
 * Removes the log message from the Log4J NDC after the request is processed.
 */
@Override
public void afterCompletion(WebRequest request, Exception ex) throws Exception {
    NDC.pop();
    if (NDC.getDepth() == 0) {
        NDC.remove();
    }
}
项目:spring4-understanding    文件:Log4jNestedDiagnosticContextInterceptor.java   
/**
 * Removes the log message from the Log4J NDC when the processing thread is
 * exited after the start of asynchronous request handling.
 */
@Override
public void afterConcurrentHandlingStarted(WebRequest request) {
    NDC.pop();
    if (NDC.getDepth() == 0) {
        NDC.remove();
    }
}
项目:spring4-understanding    文件:Log4jNestedDiagnosticContextFilter.java   
/**
 * Logs the before-request message through Log4J and
 * adds a message the Log4J NDC before the request is processed.
 */
@Override
protected void beforeRequest(HttpServletRequest request, String message) {
    if (log4jLogger.isDebugEnabled()) {
        log4jLogger.debug(message);
    }
    NDC.push(getNestedDiagnosticContextMessage(request));
}
项目:spring4-understanding    文件:Log4jNestedDiagnosticContextFilter.java   
/**
 * Removes the log message from the Log4J NDC after the request is processed
 * and logs the after-request message through Log4J.
 */
@Override
protected void afterRequest(HttpServletRequest request, String message) {
    NDC.pop();
    if (NDC.getDepth() == 0) {
        NDC.remove();
    }
    if (log4jLogger.isDebugEnabled()) {
        log4jLogger.debug(message);
    }
}
项目:JHelioviewer-SWHV    文件:JHVUncaughtExceptionHandler.java   
@Override
public void uncaughtException(Thread t, Throwable e) {
    String className = e.getClass().getCanonicalName() + "\n";
    StringBuilder stackTrace = new StringBuilder(className);
    for (StackTraceElement el : e.getStackTrace()) {
        stackTrace.append("at ").append(el).append('\n');
    }

    String msg = "";
    StringBuilder sb = new StringBuilder();

    File logFile;
    String logName = Log.getCurrentLogFile();
    if (logName != null && (logFile = new File(logName)).canRead()) {
        Log.error("Runtime exception", e);
        try (BufferedReader input = Files.newBufferedReader(logFile.toPath(), StandardCharsets.UTF_8)) {
            String line;
            while ((line = input.readLine()) != null) {
                sb.append(line).append('\n');
            }
            NDC.push(sb.toString());
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    } else {
        System.err.println("Runtime exception");
        System.err.println(stackTrace);
        msg += "Uncaught Exception in " + JHVGlobals.userAgent;
        msg += "\nDate: " + new Date();
        msg += "\nThread: " + t;
        msg += "\nMessage: " + e.getMessage();
        msg += "\nStacktrace:\n";
        msg += stackTrace + "\n";
    }

    Log.fatal(null, e);
    showErrorDialog(msg + "Log:\n" + sb);
}
项目:x-cure-chat    文件:Log4jInit.java   
/**
 * Push DNC context for proper log4j logging of different threads
 * @param servletSessionId the user session id
 * @param userSessionId the user session id
 * @param userID the unique user id
 */
public static void pushDNC( final HttpServletRequest request, final String userSessionId, final int userID ) {
    NDC.push( "IP: " + HTTPUtils.getTrueRemoteAddr(userID, request) );
    NDC.push( "(U)ID: " + userID );
    final String id = ( userSessionId != null ? userSessionId : "null");
    NDC.push( "(U)session: " + id );        
}
项目:x-cure-chat    文件:Log4jInit.java   
/**
 * Cleanes DNC context does pop and remove
 */
public static void cleanDNC() {
    NDC.pop();
    NDC.pop();
    NDC.pop();
    NDC.remove();
}
项目:cacheonix-core    文件:Trivial.java   
public static void main(String[] args) {
  BasicConfigurator.configure();
  NDC.push("Client #45890"); 

  logger.info("Awake awake. Put on thy strength.");
  Trivial.foo();
  InnerTrivial.foo();
  logger.info("Exiting Trivial.");    
}
项目:cacheonix-core    文件:InitUsingDefaultConfigurator.java   
public static void main(String[] args) throws IOException {
    // Configure the LF5Appender using the DefaultLF5Configurator.  This
    // will add the LF5Appender to the root of the Category tree.
    DefaultLF5Configurator.configure();

    // Add an NDC to demonstrate how NDC information is output.
    NDC.push("#23856");
    // Log some information.
    for (int i = 0; i < 10; i++) {
        logger.debug("Hello, my name is Homer Simpson.");
        logger.info("Mmmmmm .... Chocolate.");
        logger.warn("Mmm...forbidden donut.");
    }
    // Clean up NDC
    NDC.pop();
    NDC.remove();

    NDC.push("Another NDC");
    // Log some information.
    logger.fatal("Hello, my name is Bart Simpson.");
    logger.error("Hi diddly ho good neighbour.");
    // Clean up NDC
    NDC.pop();
    NDC.remove();

    // Call methods on both classes.
    InitUsingDefaultConfigurator.foo();
    InnerInitUsingDefaultConfigurator.foo();

    logger.info("Exiting InitUsingDefaultConfigurator.");

}
项目:cacheonix-core    文件:InitUsingDefaultConfigurator.java   
public static void foo() {
    logger.debug("Entered foo in InitUsingDefaultConfigurator class");

    NDC.push("#123456");
    logger.debug("Hello, my name is Marge Simpson.");
    logger.info("D'oh!! A deer! A female deer.");
    // Clean up NDC
    NDC.pop();
    NDC.remove();
}
项目:cacheonix-core    文件:LoggingEventTest.java   
/**
   * Serialize a logging event with ndc.
   * @throws Exception if exception during test.
   *
   */
  public void testSerializationNDC() throws Exception {
    Logger root = Logger.getRootLogger();
    NDC.push("ndc test");

    LoggingEvent event =
      new LoggingEvent(
        root.getClass().getName(), root, Level.INFO, "Hello, world.", null);
//    event.prepareForDeferredProcessing();

    int[] skip = new int[] { 352, 353, 354, 355, 356 };
    SerializationTestHelper.assertSerializationEquals(
      "witness/serialization/ndc.bin", event, skip, 237);
    }
项目:cacheonix-core    文件:XMLLayoutTest.java   
/**
   * Clear MDC and NDC before test.
   */
public void setUp() {
    NDC.clear();
    if (MDC.getContext() != null) {
      MDC.getContext().clear();
    }
}
项目:cacheonix-core    文件:SocketServerTestCase.java   
/**
 * The pattern on the server side: %5p %x %X{key1}%X{key5} [%t] %c{1} - %m%n 
 *
 * The test case uses wraps an AsyncAppender around the
 * SocketAppender. This tests was written specifically for bug
 * report #9155.

 * Prior to the bug fix the output on the server did not contain the
 * MDC-TEST5 string because the MDC clone operation (in getMDCCopy
 * method) operation is performed twice, once from the main thread
 * which is correct, and a second time from the AsyncAppender's
 * dispatch thread which is incrorrect.

 */
public void test5() throws Exception {
  socketAppender = new SocketAppender("localhost", PORT);
  socketAppender.setLocationInfo(true);
  AsyncAppender asyncAppender = new AsyncAppender();
  asyncAppender.setLocationInfo(true);
  asyncAppender.addAppender(socketAppender);
  rootLogger.addAppender(asyncAppender);

  NDC.push("some5");
  common("T5", "key5", "MDC-TEST5");
  NDC.pop();
  delay(2);
  //
  //  These tests check MDC operation which
  //    requires JDK 1.2 or later
  if(!System.getProperty("java.version").startsWith("1.1.")) {
      ControlFilter cf = new ControlFilter(new String[]{PAT5, EXCEPTION1, 
                           EXCEPTION2, EXCEPTION3, EXCEPTION4, EXCEPTION5});

      Transformer.transform(
        TEMP, FILTERED,
        new Filter[] { cf, new LineNumberFilter(), 
            new JunitTestRunnerFilter(),
            new SunReflectFilter() });

      assertTrue(Compare.compare(FILTERED, "witness/socketServer.5"));
  }
}
项目:cacheonix-core    文件:SocketServerTestCase.java   
/**
 * The pattern on the server side: %5p %x %X{hostID}${key6} [%t] %c{1} - %m%n 
 *
 * This test checks whether client-side MDC overrides the server side.
 * It uses an AsyncAppender encapsulating a SocketAppender
 */
public void test6() throws Exception {
  socketAppender = new SocketAppender("localhost", PORT);
  socketAppender.setLocationInfo(true);
  AsyncAppender asyncAppender = new AsyncAppender();
  asyncAppender.setLocationInfo(true);
  asyncAppender.addAppender(socketAppender);
  rootLogger.addAppender(asyncAppender);

  NDC.push("some6");
  MDC.put("hostID", "client-test6");
  common("T6", "key6", "MDC-TEST6");
  NDC.pop();
  MDC.remove("hostID");
  delay(2);
  //
  //  These tests check MDC operation which
  //    requires JDK 1.2 or later
  if(!System.getProperty("java.version").startsWith("1.1.")) {
      ControlFilter cf = new ControlFilter(new String[]{PAT6, EXCEPTION1, 
                           EXCEPTION2, EXCEPTION3, EXCEPTION4, EXCEPTION5});

      Transformer.transform(
        TEMP, FILTERED,
        new Filter[] { cf, new LineNumberFilter(), 
            new JunitTestRunnerFilter(),
            new SunReflectFilter() });

      assertTrue(Compare.compare(FILTERED, "witness/socketServer.6"));
  }
}
项目:cacheonix-core    文件:SocketServerTestCase.java   
/**
 * The pattern on the server side: %5p %x %X{hostID}${key7} [%t] %c{1} - %m%n 
 *
 * This test checks whether client-side MDC overrides the server side.
 */
public void test7() throws Exception {
  socketAppender = new SocketAppender("localhost", PORT);
  socketAppender.setLocationInfo(true);
  rootLogger.addAppender(socketAppender);

  NDC.push("some7");
  MDC.put("hostID", "client-test7");
  common("T7", "key7", "MDC-TEST7");
  NDC.pop();
  MDC.remove("hostID"); 
  delay(2);
  //
  //  These tests check MDC operation which
  //    requires JDK 1.2 or later
  if(!System.getProperty("java.version").startsWith("1.1.")) {
      ControlFilter cf = new ControlFilter(new String[]{PAT7, EXCEPTION1, 
                           EXCEPTION2, EXCEPTION3, EXCEPTION4, EXCEPTION5});

      Transformer.transform(
        TEMP, FILTERED,
        new Filter[] { cf, new LineNumberFilter(), 
            new JunitTestRunnerFilter(),
            new SunReflectFilter() });
      assertTrue(Compare.compare(FILTERED, "witness/socketServer.7"));
  }
}
项目:cacheonix-core    文件:SocketServerTestCase.java   
static 
void common(String dc, String key, Object o) {
  String oldThreadName = Thread.currentThread().getName();
  Thread.currentThread().setName("main");

  int i = -1; 
  NDC.push(dc); 
  MDC.put(key, o);
  Logger root = Logger.getRootLogger();

  logger.setLevel(Level.DEBUG);
  rootLogger.setLevel(Level.DEBUG);

  logger.log(XLevel.TRACE, "Message " + ++i);

  logger.setLevel(Level.TRACE);
  rootLogger.setLevel(Level.TRACE);

  logger.trace("Message " + ++i);
  root.trace("Message " + ++i);
  logger.debug("Message " + ++i);
  root.debug("Message " + ++i);
  logger.info("Message " + ++i);
  logger.warn("Message " + ++i);
  logger.log(XLevel.LETHAL, "Message " + ++i); //5

  Exception e = new Exception("Just testing");
  logger.debug("Message " + ++i, e);
  root.error("Message " + ++i, e);
  NDC.pop();
  MDC.remove(key);

  Thread.currentThread().setName(oldThreadName);
}
项目:cacheonix-core    文件:SocketServer2.java   
static
 void init(String portStr, String configFile) {
try {
  port   = Integer.parseInt(portStr);
}
catch(java.lang.NumberFormatException e) {
  e.printStackTrace();
  usage("Could not interpret port number ["+ portStr +"].");
}
PropertyConfigurator.configure(configFile);
NDC.push("Server");
 }