⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loggertestcase.java

📁 apache的log4j源码
💻 JAVA
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.log4j;import junit.framework.TestCase;import org.apache.log4j.spi.LoggingEvent;import org.apache.log4j.spi.RootLogger;import org.apache.log4j.spi.LoggerRepository;import org.apache.log4j.spi.HierarchyEventListener;import java.util.Enumeration;import java.util.Locale;import java.util.ResourceBundle;import java.util.Vector;/**   Used for internal unit testing the Logger class.   @author Ceki Gülcü*/public class LoggerTestCase extends TestCase {  Logger logger;  Appender a1;  Appender a2;  ResourceBundle rbUS;  ResourceBundle rbFR;   ResourceBundle rbCH;   // A short message.  static String MSG = "M";    public LoggerTestCase(String name) {    super(name);  }  public  void setUp() {    rbUS = ResourceBundle.getBundle("L7D", new Locale("en", "US"));    assertNotNull(rbUS);    rbFR = ResourceBundle.getBundle("L7D", new Locale("fr", "FR"));    assertNotNull("Got a null resource bundle.", rbFR);    rbCH = ResourceBundle.getBundle("L7D", new Locale("fr", "CH"));    assertNotNull("Got a null resource bundle.", rbCH);  }  public  void tearDown() {    // Regular users should not use the clear method lightly!    //Logger.getDefaultHierarchy().clear();    BasicConfigurator.resetConfiguration();    a1 = null;    a2 = null;  }  /**     Add an appender and see if it can be retrieved.  */  public  void testAppender1() {    logger = Logger.getLogger("test");    a1 = new FileAppender();    a1.setName("testAppender1");                 logger.addAppender(a1);    Enumeration enumeration = logger.getAllAppenders();    Appender aHat = (Appender) enumeration.nextElement();        assertEquals(a1, aHat);      }  /**     Add an appender X, Y, remove X and check if Y is the only     remaining appender.  */  public  void testAppender2() {    a1 = new FileAppender();    a1.setName("testAppender2.1");               a2 = new FileAppender();    a2.setName("testAppender2.2");               logger = Logger.getLogger("test");    logger.addAppender(a1);    logger.addAppender(a2);        logger.removeAppender("testAppender2.1");    Enumeration enumeration = logger.getAllAppenders();    Appender aHat = (Appender) enumeration.nextElement();        assertEquals(a2, aHat);    assertTrue(!enumeration.hasMoreElements());  }  /**     Test if logger a.b inherits its appender from a.   */  public  void testAdditivity1() {    Logger a = Logger.getLogger("a");    Logger ab = Logger.getLogger("a.b");    CountingAppender ca = new CountingAppender();    a.addAppender(ca);                       assertEquals(ca.counter, 0);    ab.debug(MSG); assertEquals(ca.counter, 1);    ab.info(MSG);  assertEquals(ca.counter, 2);    ab.warn(MSG);  assertEquals(ca.counter, 3);    ab.error(MSG); assertEquals(ca.counter, 4);          }  /**     Test multiple additivity.   */  public  void testAdditivity2() {        Logger a = Logger.getLogger("a");    Logger ab = Logger.getLogger("a.b");    Logger abc = Logger.getLogger("a.b.c");    Logger x   = Logger.getLogger("x");    CountingAppender ca1 = new CountingAppender();    CountingAppender ca2 = new CountingAppender();    a.addAppender(ca1);    abc.addAppender(ca2);    assertEquals(ca1.counter, 0);     assertEquals(ca2.counter, 0);                ab.debug(MSG);      assertEquals(ca1.counter, 1);     assertEquals(ca2.counter, 0);            abc.debug(MSG);    assertEquals(ca1.counter, 2);     assertEquals(ca2.counter, 1);            x.debug(MSG);    assertEquals(ca1.counter, 2);     assertEquals(ca2.counter, 1);      }  /**     Test additivity flag.   */  public  void testAdditivity3() {    Logger root = Logger.getRootLogger();        Logger a = Logger.getLogger("a");    Logger ab = Logger.getLogger("a.b");    Logger abc = Logger.getLogger("a.b.c");    Logger x   = Logger.getLogger("x");    CountingAppender caRoot = new CountingAppender();    CountingAppender caA = new CountingAppender();    CountingAppender caABC = new CountingAppender();    root.addAppender(caRoot);    a.addAppender(caA);    abc.addAppender(caABC);    assertEquals(caRoot.counter, 0);     assertEquals(caA.counter, 0);     assertEquals(caABC.counter, 0);                ab.setAdditivity(false);    a.debug(MSG);      assertEquals(caRoot.counter, 1);     assertEquals(caA.counter, 1);     assertEquals(caABC.counter, 0);            ab.debug(MSG);      assertEquals(caRoot.counter, 1);     assertEquals(caA.counter, 1);     assertEquals(caABC.counter, 0);            abc.debug(MSG);      assertEquals(caRoot.counter, 1);     assertEquals(caA.counter, 1);     assertEquals(caABC.counter, 1);              }  public  void testDisable1() {    CountingAppender caRoot = new CountingAppender();    Logger root = Logger.getRootLogger();        root.addAppender(caRoot);    LoggerRepository h = LogManager.getLoggerRepository();    //h.disableDebug();    h.setThreshold((Level) Level.INFO);    assertEquals(caRoot.counter, 0);         root.debug(MSG); assertEquals(caRoot.counter, 0);      root.info(MSG); assertEquals(caRoot.counter, 1);      root.log(Level.WARN, MSG); assertEquals(caRoot.counter, 2);      root.warn(MSG); assertEquals(caRoot.counter, 3);      //h.disableInfo();    h.setThreshold((Level) Level.WARN);    root.debug(MSG); assertEquals(caRoot.counter, 3);      root.info(MSG); assertEquals(caRoot.counter, 3);      root.log(Level.WARN, MSG); assertEquals(caRoot.counter, 4);      root.error(MSG); assertEquals(caRoot.counter, 5);      root.log(Level.ERROR, MSG); assertEquals(caRoot.counter, 6);      //h.disableAll();    h.setThreshold(Level.OFF);    root.debug(MSG); assertEquals(caRoot.counter, 6);      root.info(MSG); assertEquals(caRoot.counter, 6);      root.log(Level.WARN, MSG); assertEquals(caRoot.counter, 6);      root.error(MSG); assertEquals(caRoot.counter, 6);      root.log(Level.FATAL, MSG); assertEquals(caRoot.counter, 6);      root.log(Level.FATAL, MSG); assertEquals(caRoot.counter, 6);      //h.disable(Level.FATAL);    h.setThreshold(Level.OFF);    root.debug(MSG); assertEquals(caRoot.counter, 6);      root.info(MSG); assertEquals(caRoot.counter, 6);      root.log(Level.WARN, MSG); assertEquals(caRoot.counter, 6);      root.error(MSG); assertEquals(caRoot.counter, 6);    root.log(Level.ERROR, MSG); assertEquals(caRoot.counter, 6);      root.log(Level.FATAL, MSG); assertEquals(caRoot.counter, 6);    }  public  void testRB1() {    Logger root = Logger.getRootLogger();     root.setResourceBundle(rbUS);    ResourceBundle t = root.getResourceBundle();    assertSame(t, rbUS);    Logger x = Logger.getLogger("x");    Logger x_y = Logger.getLogger("x.y");    Logger x_y_z = Logger.getLogger("x.y.z");    t = x.getResourceBundle();     assertSame(t, rbUS);    t = x_y.getResourceBundle();   assertSame(t, rbUS);    t = x_y_z.getResourceBundle(); assertSame(t, rbUS);  }  public  void testRB2() {    Logger root = Logger.getRootLogger();     root.setResourceBundle(rbUS);    ResourceBundle t = root.getResourceBundle();    assertSame(t, rbUS);    Logger x = Logger.getLogger("x");    Logger x_y = Logger.getLogger("x.y");    Logger x_y_z = Logger.getLogger("x.y.z");    x_y.setResourceBundle(rbFR);    t = x.getResourceBundle();     assertSame(t, rbUS);    t = x_y.getResourceBundle();   assertSame(t, rbFR);    t = x_y_z.getResourceBundle(); assertSame(t, rbFR);      }  public  void testRB3() {    Logger root = Logger.getRootLogger();     root.setResourceBundle(rbUS);    ResourceBundle t = root.getResourceBundle();    assertSame(t, rbUS);    Logger x = Logger.getLogger("x");    Logger x_y = Logger.getLogger("x.y");    Logger x_y_z = Logger.getLogger("x.y.z");    x_y.setResourceBundle(rbFR);    x_y_z.setResourceBundle(rbCH);    t = x.getResourceBundle();     assertSame(t, rbUS);    t = x_y.getResourceBundle();   assertSame(t, rbFR);    t = x_y_z.getResourceBundle(); assertSame(t, rbCH);      }  public  void testExists() {    Logger a = Logger.getLogger("a");    Logger a_b = Logger.getLogger("a.b");    Logger a_b_c = Logger.getLogger("a.b.c");        Logger t;    t = LogManager.exists("xx");    assertNull(t);    t = LogManager.exists("a");     assertSame(a, t);    t = LogManager.exists("a.b");   assertSame(a_b, t);    t = LogManager.exists("a.b.c"); assertSame(a_b_c, t);  }  public  void testHierarchy1() {    Hierarchy h = new Hierarchy(new RootLogger((Level) Level.ERROR));    Logger a0 = h.getLogger("a");    assertEquals("a", a0.getName());    assertNull(a0.getLevel());    assertSame(Level.ERROR, a0.getEffectiveLevel());    Logger a1 = h.getLogger("a");    assertSame(a0, a1);  }  /**   * Tests logger.trace(Object).   * @since 1.2.12   */  public void testTrace() {      VectorAppender appender = new VectorAppender();      appender.activateOptions();      Logger root = Logger.getRootLogger();      root.addAppender(appender);      root.setLevel(Level.INFO);      Logger tracer = Logger.getLogger("com.example.Tracer");      tracer.setLevel(Level.TRACE);      tracer.trace("Message 1");      root.trace("Discarded Message");      root.trace("Discarded Message");      Vector msgs = appender.getVector();      assertEquals(1, msgs.size());      LoggingEvent event = (LoggingEvent) msgs.elementAt(0);      assertEquals(Level.TRACE, event.getLevel());      assertEquals("Message 1", event.getMessage());  }    /**     * Tests logger.trace(Object, Exception).     * @since 1.2.12     */    public void testTraceWithException() {        VectorAppender appender = new VectorAppender();        appender.activateOptions();        Logger root = Logger.getRootLogger();        root.addAppender(appender);        root.setLevel(Level.INFO);        Logger tracer = Logger.getLogger("com.example.Tracer");        tracer.setLevel(Level.TRACE);        NullPointerException ex = new NullPointerException();        tracer.trace("Message 1", ex);        root.trace("Discarded Message", ex);        root.trace("Discarded Message", ex);        Vector msgs = appender.getVector();        assertEquals(1, msgs.size());        LoggingEvent event = (LoggingEvent) msgs.elementAt(0);        assertEquals(Level.TRACE, event.getLevel());        assertEquals("Message 1", event.getMessage());    }    /**     * Tests isTraceEnabled.     * @since 1.2.12     */    public void testIsTraceEnabled() {        VectorAppender appender = new VectorAppender();        appender.activateOptions();        Logger root = Logger.getRootLogger();        root.addAppender(appender);        root.setLevel(Level.INFO);        Logger tracer = Logger.getLogger("com.example.Tracer");        tracer.setLevel(Level.TRACE);        assertTrue(tracer.isTraceEnabled());        assertFalse(root.isTraceEnabled());    }  private static final class CountingHierarchyEventListener implements HierarchyEventListener {      private int addEventCount;      private int removeEventCount;      public CountingHierarchyEventListener() {          addEventCount = removeEventCount = 0;      }      public void addAppenderEvent(Category cat, Appender appender) {          addEventCount++;      }      public void removeAppenderEvent(Category cat, Appender appender) {          removeEventCount++;      }      public int getAddEventCount() {          return addEventCount;      }      public int getRemoveEventCount() {          return removeEventCount;      }  }  public void testAppenderEvent1() {      CountingHierarchyEventListener listener = new CountingHierarchyEventListener();      LogManager.getLoggerRepository().addHierarchyEventListener(listener);      CountingAppender appender = new CountingAppender();      Logger root =  Logger.getRootLogger();      root.addAppender(appender);      assertEquals(1, listener.getAddEventCount());      assertEquals(0, listener.getRemoveEventCount());      root.removeAppender(appender);      assertEquals(1, listener.getAddEventCount());      assertEquals(1, listener.getRemoveEventCount());  }  public void testAppenderEvent2() {        CountingHierarchyEventListener listener = new CountingHierarchyEventListener();        LogManager.getLoggerRepository().addHierarchyEventListener(listener);        CountingAppender appender = new CountingAppender();        appender.setName("A1");        Logger root =  Logger.getRootLogger();        root.addAppender(appender);        assertEquals(1, listener.getAddEventCount());        assertEquals(0, listener.getRemoveEventCount());        root.removeAppender(appender.getName());        assertEquals(1, listener.getAddEventCount());        assertEquals(1, listener.getRemoveEventCount());  }  public void testAppenderEvent3() {          CountingHierarchyEventListener listener = new CountingHierarchyEventListener();          LogManager.getLoggerRepository().addHierarchyEventListener(listener);          CountingAppender appender = new CountingAppender();          Logger root =  Logger.getRootLogger();          root.addAppender(appender);          assertEquals(1, listener.getAddEventCount());          assertEquals(0, listener.getRemoveEventCount());          root.removeAllAppenders();          assertEquals(1, listener.getAddEventCount());          assertEquals(1, listener.getRemoveEventCount());    }    public void testAppenderEvent4() {            CountingHierarchyEventListener listener = new CountingHierarchyEventListener();            LogManager.getLoggerRepository().addHierarchyEventListener(listener);            CountingAppender appender = new CountingAppender();            Logger root =  Logger.getRootLogger();            root.addAppender(appender);            assertEquals(1, listener.getAddEventCount());            assertEquals(0, listener.getRemoveEventCount());            LogManager.resetConfiguration();            assertEquals(1, listener.getAddEventCount());            assertEquals(1, listener.getRemoveEventCount());      }  static private class CountingAppender extends AppenderSkeleton {    int counter;    CountingAppender() {      counter = 0;    }    public void close() {    }    public    void append(LoggingEvent event) {      counter++;    }        public     boolean requiresLayout() {      return true;    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -