public class LogServerTest extends TestCase {
public void testBasicLogger() {
ServerLogManager.useBasicLogging();
ArrayListLogHandler handler = new ArrayListLogHandler();
Log.addLogHandler(handler);
// Basic Test.
Log.severe("severe");
assertEquals("severe", handler.getLastMessage());
Log.finest("finest");
assertEquals("severe", handler.getLastMessage());
// Test setting the log level.
// On
Log.setDefaultLevel(Level.FINEST);
Log.finest("finest");
assertEquals("finest", handler.getLastMessage());
// Off
Log.setDefaultLevel(Level.OFF);
Log.severe("going into the void");
assertEquals("finest", handler.getLastMessage());
// Test category filters.
String cParent = "com.mycompany";
String cChild1 = "com.mycompany.package1";
String cChild2 = "com.mycompany.package2";
Log.setDefaultLevel(Level.CONFIG);
Log.config("config", cChild1);
assertEquals("config", handler.getLastMessage());
assertEquals(cChild1, handler.getLastCategory());
Log.setDefaultLevel(Level.WARNING);
Log.config("bad", cChild1);
assertEquals("config", handler.getLastMessage());
Log.setLevel(cParent, Level.CONFIG);
Log.setLevel(cChild2, Level.INFO);
Log.config("log", cChild1);
Log.config("don't log", cChild2);
assertEquals("log", handler.getLastMessage());
// Test handler filters.
Log.warning("log me");
handler.setLevel(Level.OFF);
Log.warning("don't");
assertEquals("log me", handler.getLastMessage());
handler.setLevel(Level.ALL);
// Test removing loggier.
Log.severe("hello");
assertEquals("hello", handler.getLastMessage());
Log.removeLogHandler(handler);
Log.severe("don't log");
assertEquals("hello", handler.getLastMessage());
}